Nr. 8/85 August
DM 6,50, sfr 6,50, óS 50, Lit 5900, hfl 7,50
| MAGAZIN FUR APPLE-COMPUTER
ufwerktestprogramm
Graf-quattro
` Double-Lores-Erweiterungen
Adreßverwaltung mit dBASE
Wordstar und FX-80
akultäten
- Polaroid-System
t; y EEN
Hüthig
PUBLIKATION
Zo
Hüthig-FACHBUCH-TIP
Apple ProDOS
für Aufsteiger
Mit ausführlichen Programm-
beispielen
von Ulrich Stiehl
Band 2: 1. Auflage 1985,
208 S., kart., DM 30,—
ISBN 3-7785-1036-3
Begleitdiskette
DM 28,—
Ulrich Stiehl
P 4 “t e“ s mag ES |. A Áb Á Á
für Aufsteiger
Mit ausführlichen
Programmbeispielen
Der zweite Band von ,ProDOS für
Aufsteiger“ ist wieder ein typisches
Tips- und Tricks-Buch, das viele
nützliche Utilities und Hilfsroutinen
enthält, die dem Applesoft- und As-
semblerprogrammierer den Umgang
mit ProDOS erleichtern sollen.
Zunächst wird eine bewußt leichtver-
ständliche Einführung in die
Applesoft-Programmierung unter
ProDOS gegeben, die sich insbeson-
dere an diejenigen Leser wendet, die
das alte DOS 3.3 nur noch „am
Rande“ kennengelernt haben.
Im Anschluß daran wird gezeigt, wie
man einige Unzulänglichkeiten des
BASIC.SYSTEMs durch Tricks behe-
ben kann, z. B. Einlesen von Strings
mit Komma und Doppelpunkt, Laden
und Speichern von Zahlen als Binär-
dateien, Simulierung des fehlenden
MON-Befehls u. a.
Den Hauptteil des Buches bilden so-
fort einsatzfähige Utilities, die alle
klassischen „Pflichtübungen“ ab-
decken, z. B. Dateileseprogramme
mit ASCII- und Hex-Dump, Dateiko-
pierprogramme, Diskettenformatier-
und -kopierprogramme, Disketten-
vergleichsprogramme, Konvertie-
rungsprogramme (DOS 3.3 nach
ProDOS), Bad-Block-Programme
u. a. Zur Anwendung dieser Utilities
sind keinerlei Assemblerkenntnisse
erforderlich.
Das Gesetz der Sàttigung hat jeder schon
am eigenen Leibe verspürt. In der Psycho-
logie sprechen wir von abnehmender Reiz-
wirkung, in der Wirtschaftwissenschaft von
Marktsattigung: Die erste Portion eines
saftigen Steaks lassen wir uns einiges
kosten; auch das zweite Tournedos ist
vielen ihr Geld wert; aber nach dem dritten
Stück haben wir sprichwörtlich „die
Schnauze voll“ — die Sättigung ist erreicht.
Was wir zur Zeit in der Mikrocomputer-
branche erleben, ist sowohl eine psycho-
logische als auch eine ökonomische Såtti-
gung: psychologisch deshalb, weil der
Reiz des Neuen verflogen ist, ökonomisch
deshalb, weil der Mikrocomputer inzwi-
schen in vielen Büros und Wohnungen
steht. Wie an den anderen Pionieren der
Mikro-Ära ist auch an der Firma Apple
diese „Sättigung“ nicht spurlos vorüber-
gegangen: Man spricht bereits von weite-
ren Entlassungen — auch in Deutschland —,
und Übernahmegerüchte halten sich hart-
näckig in allen größeren Wirtschaftsblät-
tern. Ein durchgreifendes Revirement in
der Führungsetage in Cupertino hat mitt-
lerweile sein zweites Opfer gefunden:
editorial
Steven Jobs wurde nahegelegt, vom Vor-
stand in den Aufsichtsrat überzuwechseln
— ein probates Mittel, um unliebsame
Manager aufs Abstellgleis zu schieben.
Wie berichtet, hatte Steve Wozniak bereits
vorher seinen Hut genommen. Damit sind
die beiden legendåren Grunder des Apple-
Imperiums ins zweite Glied zuruckgetreten.
Apple war die einzige Mikrocomputerfirma,
bei der der Begriff des ,Personal"-Com-
puters noch eine andere, tiefere Bedeu-
tung hatte, nåmlich die Bedeutung des von
einer Persönlichkeit geschaffenen und ge-
prågten Mikrocomputers, wobei ich hier
namentlich an Steve Wozniak als den tech-
nischen Kopf des Zweigespanns denke.
Dies wird sich nun åndern, denn die Kopp-
lung Apple/Sculley hat einen schaleren
Sinn als die Assoziation Apple/Wozniak.
Woz stand fur Genie. Sculley steht fur
Pepsi. Nach den sieben fetten Jahren kom-
men jetzt die sieben anderen. Da ist kein
Platz mehr fur geniale Eigenbrötler — oder
um mit G. B. Shaw zu sprechen: ,Genius
demanding bread is given a stone ..."
P i APR
Ulrich Stiehl
Am
Huthig
PUBLIKATION
S
Impressum
Peeker
Magazin für Apple-Computer
2. Jahrgang 1985
ISSN 0176-9200
@ für den gesamten Inhalt
einschlieBlich der Programme
Dr. Alfred Hüthig Verlag,
Heidelberg 1985
Verleger und Herausgeber:
Dipl.-Kfm. Holger Hüthig
Geschäftsführung Zeitschriften:
Heinz Melcher
Chefredakteur:
Ulrich Stiehl (us) Tel. (06221) 489352
(Bitte nur in redaktionellen Angelegenheiten
anrufen)
Anzeigenleitung:
Jürgen Maurer, Tel. (06221) 489218
z. Zt. gilt Anzeigenpreisliste Nr. 3
Vertriebsleitung:
Ruth Biller, Tel. (06221) 489280
Produktionsleitung: Gunter Sokollek
Gestaltung: Rainer Schmitt
Titelbild: Creative Computer
Service, Mannheim
Technik
Testprogramme för Apple-ll-
Diskettensysteme
Analyse von Disketten, Laufwerk
und Controller
von Dipl.-Ing. Gerhard Berg
ProDOS
ProDOS für Anfänger
Teil 3: Geheimnisse von BSAVE
und BLOAD
von Ulrich Stiehl
Grafik
Graf-quattro Teil 3: Tricks über Tricks
von Nino G. Barbieri
Double-Lores-Applesoft-Erweiterungen
von Karl-Walter Bott
CP/M
Adreßverwaltungsprogramm mit dBASE Il
von Ing. (grad.) Ernst Fischer
Wordstar druckt internationale
Zeichensätze
Frei definierte Sonderzeichen
auf dem FX-80 nutzen
von Dipl.-Ing. H. A. Rohrbacher
Pascal
Tips und Tricks in Pascal
Teil 1: Die versteckte Prozedur „Idsearch“
von Dieter Geiß
Assembler
Assembler-Pseudo-Opcode-
Referenztabelle
von Dr. Jürgen B. Kehrel
Verlag: Erscheinungsweise: 12 Hefte jährlich,
Erscheinungstag jeweils 1 Woche vor Monatsbeginn.
Jahresabonnement DM 72,-, einschließlich MwSt,
im Inland portofrei. Einzelheft DM 6,50
Dr. Alfred Hüthig Verlag GmbH
Im Weiher 10, Postfach 102869
6900 Heidelberg
Telefon (06221) 489-0
Telex 4-6 1727 hued d.
Vertrieb Handel:
Breslauer Str. 5, Postfach 1123,
8057 Eching b. München,
Tel. 089/3191067, Telex 0522 656
18
24
32
40
45
48
51
MZV — Moderner Zeitschriften Vertrieb GmbH
EEKER
MAGAZIN FÜR APPLE-COMPUTER `
Fakultäten
von Roland und Manfred Fietkau
Mecki
Microsoft Basic leicht geMACht
Teil 4: Die Grafik
von Pit Capitain
Hobby
Grafik-Demonstrationen
von Ralf Knoke
Zeichenjagd. Ein Einzeiler
von Hans-Peter Lendle
Testberichte
Die Polaroid-Foto-Systeme
getestet von Thomas Bühner
und Prof. Dr. Klaus Hausmann
Das Bildverarbeitungssstem MAGIC
Siemens entdeckt neue Primzahl
TRICARD-Multifunktionskarte
für Apple lle
Copy-Killer jetzt in deutsch
Microfloppy mit 2 x 1 MByte
ProDOS-Debugger BUGBYTER
Beagle Graphics
getestet von Rolf W. Becker
Errata
SUPERDUMP und Apple Ilc
RAM.FRE
Diversi-DOS 2-C
Inserentenverzeichnis
Zahlungen: an den Dr. Alfred Hüthig Verlag
GmbH, D-6900 Heidelberg 1: Postscheck-
konten: BRD: Karlsruhe 485 45-753;
Österreich: Wien 7555888; Schweiz: Basel
40-24417; Niederlande: Den Haag 145728;
Italien: Mailand 47718; Belgien:
Brüssel 723026; Dänemark: Kopenhagen
34969; Norwegen: Oslo 994 24;
Schweden: Stockholm 5477 76-5 Printed in Germany
56
60
67
69
71
74
74
74
76
76
76
77
50
70
68
78
Bankkonten: Landeszentralbank Heidel-
berg 67 207 341; BLZ 672 000 00; Deutsche
Bank Heidelberg 02165041; BLZ
67270003; Bezirkssparkasse Heidelberg
204 51, BLZ 67250020.
Herstellung: Heidelberger Verlagsanstalt
Testprogramm fur
Apple-ll- an opno enara oe
Diskettensysteme
Anal Diskett 1%
nalyse von Disketten, Z i
fi
Laufwerk und Controller
6 Peeker 8/85
Im Rahmen der Artikelserie über Disket-
tensysteme bringen wir in dieser Ausgabe
ein Programm zum Testen des Apple-Dis-
kettensystems. Das Programm ist ein un-
erläßliches Werkzeug für alle, die sich nå-
her mit Floppy-Laufwerken beschäftigen.
Insbesondere wird das Programm für fol-
gende Anwendungen gebraucht:
Test aller Controller- und Laufwerk-
Funktionen,
Justage von Diskettenlaufwerken,
Fehlersuche und Reparatur von Lauf-
werken und Controllern,
Test von Disketten,
Anpassung von
werken,
Funktionsanalyse von Controller und
Laufwerk.
Nicht-Apple-Lauf-
Dazu verfügt das Programm über folgende
Eigenschaften:
— einfache Bedienung durch Menüsteue-
rung,
— Fehlermeldungen bei Bedienungsfeh-
lern,
— grafische Ausgabe zur besseren An-
schaulichkeit,
— leichtes Oszillographieren durch spe-
zielle Trigger-Signale und Betriebs-
arten,
— Laden des Programms von Diskette
oder Kassette,
— Betrieb aller Controller, die bus-seitig
Apple-kompatibel sind,
— Betrieb aller Disketten-Laufwerke bis zu
80 Spuren.
1. Eingabe und Start des Pro-
gramms
Da das Programm die hochauflösende
Grafik benutzt, muß dafür gesorgt werden,
daß das Programm oberhalb der Grafik-
Seite 1 (ab $4000) im RAM liegt. Um dies
zu erreichen, müssen als erstes die fol-
genden Befehle eingegeben werden:
POKE 104, 64
POKE 16384, 0
NEW
Mit dem Befehl POKE 104, 64 wird der
Anfang des BASIC-Programms von $0800
nach $4000 verschoben. Wegen einer Ei-
genart des Applesoft-Interpreters muß das
erste Byte des Programmspeicherbe-
reichs zu Null gesetzt werden. Dies ge-
schieht mit dem Befehl POKE 16384, 0.
Mit dem Befehl NEW werden alle anderen
Peeker 8/85
DISKTEST.B
9000:
9002:
9004:
9006:
9008:
900A:
900D:
900F:
9011:
9013:
9015:
9017:
9019:
901A:
901C:
901E:
9020:
9021:
9023:
9025:
9027:
902A:
902D:
9030:
9031:
9032:
9033:
9034:
9035:
A6
A9
85
A4
BD
c5
FØ
E6
DØ
E6
c8
DØ
E6
DØ
6Ø
FA
FE
FF
FC
8C CØ
FB
FB
Ø6
FE
02
FF
EE
FD
EA
FA
FE
FB
8D CØ
8F CØ
8C CØ
EE OO JO Ob Q 5 =
O OG GQ Ñ ta e
TECHNI
*Unterprogramme zum Diskettensystem-Testprogramm
*von Dipl.-Ing. Gerhard Berg — 2.3.1985
E?
ORG $9000
*
SLOT
*
*Positionier-Variablen
EQU $FA :Slot-Nr. * $1Ø
ZIELSP EQU SLOT+1 ;Zielspur
AKTSP EQU ZIELSP+1 ;Aktuelle Spur
BERUHZ EQU AKTSP+1 ;Beruhigungszeit in msec
SCHRITT EQU BERUHZ+1 ;Schritt-Zåhler
ALTSP EQU SCHRITT+l ;Alte (vorige) Spur
*
*Schreib-/Lese-Variablen
MUSTER EQU SLOT+1 ;FluBwechsel-Muster
BYTEL EQU MUSTER+1 ;Byte-Zåhler
BYTEH EQU BYTEL+1 (2'er Komplement)
FEHLERL EQU BYTEH+1 ;Fehler-Zåhler
FEHLERH EQU FEHLERL+1
MODE EQU FEHLERL ‚Schreib-Modus
MODEA EQU MODE ‚absolute Adressierung!!
INDEX EQU MODE ‚Index-Zähler
*
*Interne I/0-Adressen
TASTDAT EQU $CØØØ
LAUTSP EQU $CØ3Ø
TRIGGER EQU $CØ4Ø
*
*Disketten-Controller-Adressen
*Effektive Adresse = Basis-Adresse + Slot-Nr. * $1Ø
;Tastatur-Daten-Register
;Lautsprecher
;Trigger (Utility Strobe)
CONTR EQU $CØ8Ø ;Controller-Basis-Adresse
Q6AUS EQU $CØSC :Q6 ausschalten
Q6EIN EQU $C08D ;Q6 einschalten
Q7AUS EQU $CØ8E ;Q7 ausschalten
Q7EIN EQU S$CØ8F :Q7 einschalten
*
* Q7 Q6 Funktion
E, RE
AUS AUS Lesen
AUS EIN Schreibschutz prüfen und
Controller initialisieren
Schreiben
Datenregister laden
* H H H H H H
H
H
=
*Lese-/Pruf-Routine
*
LESEN LDX SLOT ;X = Slot-Nr. * $1Ø
LDA #Ø
STA FEHLERL ;Fehler-Zåhler löschen
STA FEHLERH
LDY BYTEL ;Y = Byte-Zåhler low Byte
LESEN1 LDA Q6AUS, X ;Byte lesen
BPL LESEN1 ;warten bis Byte komplett
CMP MUSTER ¿mit Muster vergleichen
BEQ LESEN2 "beide gleich -> Sprung
INC FEHLERL ;Fehler-Zåhler erhöhen
BNE LESEN2
INC FEHLERH
LESEN2 INY ‚Byte-Zähler erhöhen
BNE LESEN1 (2'er Komplement)
INC BYTEH
BNE LESEN1 ;Byte-Zåhler = Ø — Ende
RTS
*Schreib-Routine
*
*MODE:
*
*
*
Bit 7
Bit 7
Bit 7
SCHREIB LDX
SCHRØ
BIT
LDA
CMP
STA
CMP
PHP
PLP
NOP
NOP
PHP
PLP
x, Bit
Ø, Bit
1, Bit
SLOT
MODE
MUSTER
Q6EIN, X
Q7EIN, X
Q6AUS, X
;X = Slot-Nr.
Ø -> dauernd schreiben
1 — 1 Spur schreiben
l -> 1 Spur + Index
* $10
:V Bit setzen = Bit 6
;A = Flußwechselmuster
‚Controller initialisieren
‚Schreiben einschalten +
. erstes Byte ausgeben
Vektoren initialisiert, so daB ein neues Pro-
gramm eingegeben werden kann.
Danach muB das gesamte BASIC-Pro-
gramm eingetippt werden. Wenn die Ein-
gabe der Kommentare eingespart werden
soll, muB trotzdem zumindest die Zeilen-
nummer und „REM eingegeben werden,
da oft (insbesondere beim Anfang von Un-
terprogrammen) auf diese Zeilen gesprun-
gen wird. Die Zeilen, die nur einen Dop-
pelpunkt enthalten, dienen nur der besse-
ren Übersichtlichkeit und können ohne
weiteres weggelassen werden. Das As-
semblerprogramm braucht nicht extra ein-
gegeben zu werden, da es in Form von
DATA-Befehlen im BASIC-Programm be-
reits enthalten ist. Dies wurde so einge-
richtet, um ein einfaches Laden von Kas-
sette zu ermöglichen, falls das Disketten-
system defekt ist. Nach dem Programm-
start wird über eine Prüfsumme getestet,
ob die ,DATA"-Befehle, die das Assem-
blerprogramm enthalten, richtig eingege-
ben wurden.
Wer die Arbeit des Eintippens sparen will,
kann das Programm auch auf der Peeker-
Sammeldiskette beziehen.
Zur Anpassung an das verwendete Lauf-
werk können die folgenden Zeilen geän-
dert werden:
— Zeile 10140 definiert die Spurzahl des
Laufwerks (z.B. 35, 40, 77 oder 80). Der
maximale Wert für AS ist 80.
— Zeile 10150 definiert die Anzahl der
Schrittmotor-Phasen pro Spur. Dieser
Wert ist normalerweise 2.
— Zeile 10160 definiert die Beruhigungs-
zeit (s. Peeker 3/85, S. 20), die das Pro-
gramm nach jeder Positionierung wartet,
bevor es mit dem Schreiben oder Lesen
anfängt. (Hinzu kommt noch die Ausfüh-
rungszeit des BASIC-Programms.) BZ
wird in Millisekunden angegeben und darf
jeden Wert zwischen 1 und 255 haben. Für
das Apple-Disketten-Laufwerk ist BZ nor-
malerweise 25. Fürandere Laufwerke muß
die Beruhigungszeit den Herstelleranga-
ben entnommen werden.
— Zeile 10170 definiert den Steckplatz
(Slot), in dem normalerweise der zu te-
stende Controller steckt. Der mit SN (1 bis
7) definierte Steckplatz wird beim Pro-
grammstart ausgewählt.
— Zeile 10180 definiert das normalerweise
zu testende Laufwerk. Das mit LN definier-
te Laufwerk wird bei Programmstart aus-
gewählt. LN darf den Wert 1 oder 2 haben.
9036:
9038:
903A:
9Ø3C:
9Ø3F:
9042:
9044:
9045:
9048:
904A:
9Ø4D:
9Ø4E:
9050:
9052:
9054:
9056:
9059:
905B:
905D:
SØSF:
9062:
9065:
9066:
9067:
9068:
9069:
906A:
906C:
906E:
9070:
9072:
9074:
9076:
9078:
SØTA:
9Ø7C:
SØTF:
9081:
9082:
9084:
9086:
9088:
908A:
9Ø8C:
9Ø8F:
9091:
9093:
9095:
9096:
9098:
909A:
909C:
9Ø9E:
909F:
9ØA1:
90A4:
90A6:
9ØA9:
SØAB:
SØAD:
SØAF:
9ØB2:
9ØB5:
9ØB8:
SØBA:
c9
DØ
E6
9D
DD
70
A6
A9
85
C6
FØ
AØ
84
A6
BD
1Ø
2C
30
c9
DØ
2C
2C
20
FØ
A9
92
02
FF
8D
8C
ØA
00
8E
FC
E2
FD
EØ
FE
EF
Ø3
AA
8D
8c
DE
EF
8C
FB
AA
DF
F4
FØ
FC
ØØ
CH
CH
cø
cø
00
cø
CH
cø
cø
cØ
cØ
cØ
cØ
91
112
113
114
115
116
117
118
119
12Ø
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
14Ø
141
142
143
144
145
146
147
148
149
15Ø
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
SCHR1 CMP +$92 ;12 microsec F.w.abstand?
BNE SCHR2 ;nein -> Sprung
INC FEHLERH ;4 microsec zusåtzlich
SCHR2 STA Q6EIN,X ;Byte ausgeben
CMP Q6AUS,X
BVS SPSCHR ;1 Spur -> Sprung
*
*dauernd schreiben, bis eine Taste gedrückt wird
NOP
LDY TASTDAT ‚Taste gedrückt?
BPL SCHR® "nein -> weiter schreiben
ENDSCHR LDA Q7AUS,X :Schreiben ausschalten
RTS
*
*1 Spur schreiben
SPSCHR INC BYTEL ;Byte-Zåhler erhöhen
BNE SCHR® ; (2'er Komplement)
INC BYTEH ;Byte-Zåhler <> Ø ->
BNE SCHR1 ; weiter schreiben
BIT: MODEA ‚absolute Adressierung!!
BPL ENDSCHR "kein Index — Ende
*
*Index für Umdrehungsdauermessung schreiben
INDSCHR LDY #3 ‚3 Index Bytes
INDSCH1 LDA +$AA ;Flußwechselmuster 1010
STA Q6EIN,X ;Byte ausgeben
CMP Q6AUS,X
PHA
PLA
PHA
PLA
DEY ;Byte-Zåhler erniedrigen
BEQ ENDSCHR ‚Zähler = Ø — Ende
BNE INDSCHl :Zåhler > Ø -> weiter
*Anzahl Bytes pro Spur messen (vom 1. zum 2. Index)
*
UMDR LDX SLOT ;X = Slot-Nr. * $1Ø
LDA #3
STA INDEX ‚Index-Zähler setzen
UMDR1 DEC INDEX ‚Index-Zähler erniedrigen
BEQ UMDR5 ;2. Index -> Sprung
LDY +Ø :Y = Byte-Zåhler low Byte
STY BYTEH ;Byte-Zåhler löschen
x`
*#warten bis Index vorbei
UMDR2 LDA Q6AUS, X ;Byte lesen
BPL UMDR2 ;warten bis Byte komplett
INY ;Byte-Zåhler erhöhen
BNE UMDR3
INC BYTEH
BMI UMDR5 ; > 32767 Bytes —> Fehler
UMDR3 CMP +$FF :4 microsec Abstand?
BNE UMDR2 ;nein = Index -> Sprung
*
xwarten auf Index
UMDR4 LDA Q6AUS,X ‚Byte lesen
BPL UMDR4 ‚warten bis Byte komplett
CMP +$AA ; Index?
BEQ UMDR1 ;ja -> Sprung
INY ‚Byte-Zähler erhöhen
BNE UMDR4
INC BYTEH
BPL UMDR4 ; > 32767 Bytes -> Fehler
UMDR5 STY BYTEL ;Byte-Zåhler low Byte
RTN RTS
*Trigger für Spur-Justage mit CE-Disk erzeugen
*BERUHZ = Mindest-Zeit bis zum nächsten Trigger in msec
` -
SPTRIG LDX SLOT ;X = Slot-Nr. * $1Ø
SPTRIG1 LDA Q6AUS,X ;Byte lesen
BPL SPTRIG1 ‚warten bis Byte komplett
BIT TASTDAT ‚Taste gedrückt?
BMI RTN ‚ja -> Abbruch
CMP #$FF :Orientierungsburst?
BNE SPTRIG1 ‚nein -> auf Burst warten
BIT LAUTSP "Lautsprecher ansteuern
BIT TRIGGER ‚Trigger ansteuern
JSR BERUH ‚warten
BEQ SPTRIG ;immer springen
*Positionier-Routine
*
POSIT LDA +Ø
Peeker 8/85
90BC:
90BE:
9ØCØ:
90C2:
9003:
9ØC5:
9ØC7:
9ØC9:
9ØCB:
9ØCD:
SØCF:
90D1:
90D3:
9ØD5:
9ØDT :
90D9:
SØDB:
SØDD:
SØDE:
SØDF:
90E2:
9ØES:
90E8:
90EA:
90EB:
90EE:
90F1:
90F4:
90F6:
90F8:
90FB:
90FC:
SØFE:
9100:
9101:
9103:
9104:
9107:
9108:
910A:
91ØC:
91ØF:
911Ø:
9112:
9113:
9115:
9116:
9118:
9119:
911A:
9110:
911E:
o11F:
9122:
9124:
912B:
912E:
9136:
311 Bytes
85
85
38
E5
FØ
BØ
49
E6
90
69
C6
C5
90
A5
A5
2A
05
AA
BD
60
A2
CA
DØ
EA
38
E9
DØ
60
Peeker 8/85
FE
FC
FF
FB
31
Ø6
FF
FC
04
FE
FC
FE
02
FE
ØC
Øl
FC
1F
13
FF
FE
2B
13
FE
C6
08
FC
Ø3
FA
80
FD
ØA
. 15
F8
12
FD
Øl
F5
3Ø
2Ø
2C
1F
90
91
91
90
91
91
91
CH
Øl
28
1E
26
LE
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
225
224
225
226
227
228
229
230
251
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
1D 1C
247
1D IC
STA SCHRITT :Schritt-Zåhler löschen
POSITØ LDA AKTSP ‚aktuelle Spur laden
STA ALTSP . und retten
SEC ‚Zielspur subtrahieren
SBC ZIELSP ‚ergibt Spurdifferenz in A
BEQ AMZIEL ;Spurdiff. = Ø — am Ziel
BCS: POSITI ‚Diff. > Ø - nach außen
*
*aktuelle Spur < Zielspur —> nach innen positionieren
EOR +#$FF :Absolutwert der Spurdiff.
INC AKTSP ;aktuelle Spur erhöhen
BCC POSIT2
*
*aktuelle Spur > Zielspur -> nach außen positionieren
POSIT1 ADC +$FE ;1 subtrahieren
DEC AKTSP ‚aktuelle Spur erniedrigen
*
*Spurdifferenz in A mit Schritt-Zähler vergleichen
POSIT2 CMP SCHRITT
BCC POSIT3 ;Spurdiff. < Schrittzahl
* -> mit Spurdifferenz Rampe runterlaufen
LDA SCHRITT :Spurdiff. > Schrittzahl
* -> mit Schritt-Zähler Rampe hochlaufen
*
*wenn Rampe (Y) >= 12 würde -> Y nicht mehr andern
POSIT3 CMP #12
BCS POSIT4 ;A >= 12 -> Y nicht ändern
TAY ;A < 12 — A nach Y laden
POSIT4 SEC ;C = 1 ->
JSR PHASEL ; aktuelle Phase ein
LDA ZPHEIN,Y ;Einschaltzeit warten
JSR WARTE
LDA ALTSP ‚vorhergehende Phase ...
CLC scs mitc=ß...
JSR PHASE2 . ausschalten
LDA ZPHAUS,Y ;Ausschaltzeit warten
JSR WARTE
INC SCHRITT ;‚Schritt-Zähler erhöhen
BNE POSIT®
*
AMZIEL JSR BERUH ;Beruhigungszeit warten
CLC ‚aktuelle Phase aus
*
*Schrittmotor Phase ein- bzw. ausschalten
PHASE1 LDA AKTSP ;aktuelle Spur laden
PHASE2 AND #3 ; Phasen * maskieren und
ROL ;... nach links schieben
* C (Phase aus/ein) ist jetzt Bit ®
ORA SLOT :Slot-Nr. * $1Ø addieren
TAX
LDA CONTR,X ¿Phase ein-/ausschalten
RTS
x
*Beruhigungszeit warten (BERUHZ * 1 msec)
BERUH LDY BERUHZ
BERUH1 LDA +1Ø :1Ø * 100 microsec
JSR WARTE ; = 1 msec warten
DEY
BNE BERUH1
RTS
*
*Warte-Routine (verzögert um A * 100 microsec)
WARTE LDX +18
WARTEL DEX
BNE WARTE1
NOP
SEC
SBC zl ;A um 1 erniedrigen
BNE WARTE
RTS
*
*Zeittabellen für Rampe: Phase ein / Phase aus
ZPHEIN HEX Ø13Ø28242Ø1E1D1C1C1C1C1C
LG LG LG
ZPHAUS HEX 7Ø2C26221F1E1D1C1C1C1C1C
1C 1C 1C
ÆTECHNIk 44
Nachdem das Programm vollståndig ein-
gegeben ist, wird es mit „SAVE
DISKTEST“ auf Diskette und/oder
„SAVE“ auf Kassette gespeichert. Mit Hil-
fe eines Texteditors sollte zusätzlich die
Text-Datei DISKTEST.START auf Disket-
te gespeichert werden. Damit kann das
Programm einfach durch Eingabe von
„EXEC DISKTEST.START" geladen und
gestartet werden.
Zum Laden und Starten von Kassette wer-
den die folgenden Befehle benötigt:
POKE 104,64: POKE 16384,0: LOAD:
RUN
2. Bedienung des Programms
Nach dem Start des Programms wird auf
dem Bildschirm das Hauptmenü (s. Tabel-
le 1) mit allen Befehlen des Testpro-
gramms ausgegeben. Die Befehle werden
durch Eingabe des zugehörigen Buchsta-
bens ausgeführt, die in Klein- oder Groß-
schreibung eingegeben werden können.
C — Mit dem C-Befehl wird der Steckplatz
(Slot) ausgewählt, in dem der zu testende
Controller steckt. Nach Eingabe des „C“
springt der Cursor ans Ende der Befehls-
zeile. Nachdem die Steckplatz-Nummer (1
bis 7 — ohne RETURN) eingegeben wor-
den ist, prüft das Programm, ob sich in
dem angegebenen Steckplatz tatsächlich
ein Disketten-Controller befindet. Wenn
nicht, wird eine Fehlermeldung ausgege-
ben. Wenn sich in dem Steckplatz ein
Disketten-Controller befindet, wird aus
dem Inhalt des PROMs eine Prüfsumme
gebildet. Falls die Prüfsumme nicht
stimmt, wird ebenfalls eine Fehlernach-
richt ausgegeben. Bei Controllern mit ab-
weichendem PROM kann die Fehlermel-
dung ignoriert oder das Programm für die
andere Prüfsumme entsprechend abgeän-
dert werden (Zeile 30080).
D - Mit dem D-Befehl wird das zu testen-
de Laufwerk (Drive) ausgewählt. Jedes-
mal, wenn die Taste „D“ gedrückt wird,
wird zwischen Laufwerk 1 und 2 hin- und
hergeschaltet. Das ausgewählte Laufwerk
wird am Ende der Zeile angegeben.
E — Mit dem E-Befehl wird das ausgewähl-
te Laufwerk ein- bzw. ausgeschaltet. Ist
das Laufwerk ausgeschaltet, so wird es
durch Drücken der Taste „E“ eingeschal-
tet. Wird die Taste „E“ das nächste Mal
betätigt, so wird das Laufwerk wieder aus-
geschaltet. Am Ende der Zeile ist angege-
ben, ob das Laufwerk momentan ein- oder
ausgeschaltet ist.
0 - Der 0-Befehl Ø dent zur Positionierung
des Laufwerks auf die Spur 0. Nachdem
ein Laufwerk das erste Mal eingeschaltet
wurde, muß es zunächst auf Spur 0 posi-
tioniert werden, bevor weitere Befehle
ausgeführt werden können.
I — Mit dem I-Befehl wird das ausgewählte
Laufwerk von der momentanen Position
um jeweils eine Spur nach innen positio-
niert. Die jeweilige Spurposition wird am
Ende des P-Befehls ausgegeben.
A - Der A-Befehl positioniert das ausge-
wählte Laufwerk um eine Spur nach
außen.
P — Mit Hilfe des P-Befehls kann direkt auf
eine beliebige Spur positioniert werden.
Nach Drücken der Taste „P“ springt der
Cursor an das Ende der Befehlszeile.
Nachdem die gewünschte Spurnummer
und RETURN eingegeben wurde, positio-
niert das Laufwerk auf diese Spur.
H - Mit dem H-Befehl positioniert das
Laufwerk ständig zwischen zwei beliebi-
gen Spuren hin und her. Damit kann der
Positioniermechanismus über längere Zeit
getestet werden. Nach Drücken der Taste
„H“ müssen zunächst die beiden Spuren
eingegeben werden (jeweils mit RETURN
abgeschlossen). Danach startet das Posi-
tionieren, das jederzeit durch Drücken ei-
ner beliebigen Taste abgebrochen werden
kann. Zum leichteren Oszillographieren
wird nach jedem zweiten Positionieren ein
Trigger-Impuls am Utility-Strobe-Ausgang
(Game-I/O-Stecker Stift 5) erzeugt.
T - Der T-Befehl testet, ob die Diskette in
dem ausgewählten Laufwerk schreibge-
schützt ist oder nicht.
F - Mit dem F-Befehl wird der beim
Schreiben und Lesen verwendete Fluß-
wechselabstand ausgewählt. Zur Wahl
stehen drei FluBwechselmuster mit den
drei beim Apple-Aufzeichnungsverfahren
vorkommenden Flußwechselabständen
von 4, 8 und 12 Mikrosekunden. Jedes-
mal, wenn die Taste „F“ gedrückt wird,
wird auf das nächste Flußwechselmuster
weitergeschaltet.
M - Mit dem M-Befehl wird die Betriebsart
(Modus) für Schreiben und Lesen ausge-
wählt. Zur Wahl stehen: „dauernd“, „1
Spur“ und „ganze Diskette“. Jedesmal,
wenn die Taste „M“ gedrückt wird, wird
die nächste Betriebsart für Schreiben und
Lesen vorgewählt.
10
L - Der L-Befehl startet das Lesen von der
Diskette. Nach jedem Lesevorgang wird
die Anzahl der gelesenen und der davon
fehlerhaften Disk-Bytes ausgegeben. Vor-
aussetzung ist natürlich, daß die Diskette
vorher mit dem gleichen FluBwechselmu-
ster beschrieben wurde. Je nach ausge-
wählter Betriebsart hat der L-Befehl unter-
schiedliche Funktionen:
— Das Lesen in der Betriebsart „dauernd“
bewirkt, daß das Lesen der momentanen
Spur ständig wiederholt wird, bis es durch
Drücken einer beliebigen Taste abgebro-
chen wird. Nach jedem Lesevorgang wird
das Ergebnis auf dem Bildschirm ausge-
geben.
— In der Betriebsart „I Spur“ wird die
momentane Spur einmal gelesen.
— In der Betriebsart „ganze Diskette“ wer-
den alle Spuren der Diskette nacheinander
einmal gelesen und das Ergebnis für alle
Spuren auf dem Bildschirm ausgegeben.
Nachdem alle Spuren gelesen wurden
oder das Lesen durch Drücken einer be-
liebigen Taste abgebrochen wurde, er-
scheint ein Untermenü, das folgende
Funktionen zuläßt:
— T - Der T-Befehl bewirkt die Ausgabe
der Testergebnisse in Textform auf dem
Bildschirm. Dies ist die gleiche Form, in
der die Ergebnisse auch während des
Tests selbst ausgegeben werden.
— D - Der D-Befehl bewirkt die Ausgabe
der Testergebnisse auf einem Drucker.
Das Programm geht davon aus, daß sich
das Druckerinterface in Steckplatz (Slot) 1
befindet. Ist dies nicht der Fall, muß Zeile
25610 im BASIC-Programm entsprechend
geändert werden.
— G - Durch den G-Befehl werden die
Testergebnisse grafisch in Form eines
Balkendiagramms auf dem Bildschirm
ausgegeben. Auf der waagerechten Achse
werden die Spuren aufgetragen und auf
der senkrechten Achse im logarithmi-
schen Maßstab die Anzahl der Lesefehler.
Striche am linken Bildrand markieren die
Werte für 0, 10, 100 und 1000 Lesefehler.
— H - Durch Drücken der Taste „H“ ge-
langt man zurück zum Hauptmenü.
S — Der S-Befehl des Hauptmenüs startet
das Schreiben auf die Diskette. Zuvor wird
geprüft, daß die Diskette nicht schreibge-
schützt ist, und der Bediener wird gewarnt,
welche Spuren überschrieben werden.
Zur Bestätigung, daß wirklich geschrieben
werden soll, muß ein „J“ (Ja) eingegeben
werden.
— In der Betriebsart „dauernd“ wird unun-
terbrochen geschrieben, bis eine beliebi-
ge Taste gedrückt wird. Diese Betriebsart
ist speziell zum Oszillographieren des
Schreibvorgangs vorgesehen.
— In der Betriebsart „1 Spur“ wird die
momentane Spur einmal mit dem ausge-
wählten FluBwechselmuster beschrieben.
— In der Betriebsart „ganze Diskette“ wer-
den alle Spuren einmal beschrieben.
W - Der W-Befehl ermöglicht abwech-
selndes Schreiben und Lesen. Die Funk-
tion in den einzelnen Betriebsarten ist
gleich dem L-Befehl, außer daß unmittel-
bar vor jedem Lesen die momentane Spur
einmal beschrieben wird.
U — Der U-Befehl dient zur Messung und
Justage der Umdrehungsdauer (Dreh-
zahl). Die Abweichung von der nominalen
Umdrehungsdauer wird ständig numerisch
und grafisch ausgegeben, bis eine beliebi-
ge Taste gedrückt wird. Positive Abwei-
chungen bedeuten, daß die Umdrehungs-
dauer zu hoch ist bzw. daß sich die Disket-
te zu langsam dreht. Die Abweichung soll
zwischen +1 % und -1 % liegen. Die
optimale Drehzahl liegt bei etwa +0,5 %
Abweichung.
J - Der J-Befehl dient als Hilfe beim Über-
prüfen und Justieren der Spurlage mit Hil-
fe einer Justage-Diskette (CE-Disk) von
BASF. Normalerweise braucht man beim
Arbeiten mit dieser Diskette den Index
zum Triggern des Oszillographen. Beim
Apple-Laufwerk, das ja keine Index-Abfra-
ge hat, kann man dann nur auf das Lese-
signal triggern, was sehr schwierig ist. Das
Programm schafft hier Abhilfe, indem es
einen künstlichen Index generiert. Nach
Eingabe des J-Befehls wird pro Umdre-
hung ein Impuls am Utility-Strobe-Aus-
gang (Game I/O Stecker Stift 5) generiert.
Zusätzlich wird pro Umdrehung auch ein
„Klick“ des Lautsprechers erzeugt.
Vor Ausgabe des Trigger-Signales wird
noch überprüft, ob sich das Laufwerk auf
der für die Justage richtigen Spur befindet.
Bei 5,25-Zoll-Laufwerken ist dies bei ein-
facher Spurdichte Spur 16 und bei doppel-
ter Spurdichte Spur 32. Befindet sich das
Laufwerk nicht auf der richtigen Spur, wird
eine entsprechende Fehlermeldung aus-
gegeben.
Die Kontrolle und Justage der Spurlage
mit Hilfe der BASF-CE-Disk wird ausführ-
lich in einem späteren Artikel erläutert.
Peeker 8/85
Accelerator Ile macht
Ihren Apple" II, II Plus oder lle
dreieinhalbmal schneller.
TRRERERE RER BER S
Jetzt laufen VisiCalc®, Apple Writer, PASCAL, BASIC,
Datenbanken usw. endlich ohne langen Zeitverlust.
Stecken Sie einfach die ACCELERATOR lle Karte
in irgendeinen Slot und beobachten Sie,
wir Ihr Apple loslegt!
ACCELERATOR lle besitzt seinen eigenen schnellen
6502 Prozessor und 80 K-Byte Hochgeschwindigkeits-
speicher, einschließlich einer eingebauten schnellen
Sprachkarte und schnellem RAM-Speicherplatz für die
ROM-Sprache.
Direkt von Pandasoft (Titan Distributor für Deutschland)
oder bei Ihrem Applehändler.
panciqys@Ft Dr.-Ing. Eden
Uhlandstraße 195 : 1000 Berlin 12 - Mo-Fr 10-18 Uhr, Sa 10-13 Uhr
Telefon: 0 30/31 04 23 - Telex: 185859
(9) ran ge Druckerinterfaces für Apple II+/e/
Printer ang c/lll Interfaces auf dem neuesten
Stand der Technik. Kompatibel mit allen gängigen Druckern wie:
APPLE, EPSON, STAR, NEC, OKIDATA usw. Passende Treiber-
software wird über Dip-Switch ausgewählt.
Grafikfähiges Druckerinterface
A ar ple r+ das keine Wünsche mehr offen läßt.
Über 2 Dutzend Kommandos eier) die volle Kontrolle
über alle Moglichkeiten Ihres Sege
Druckers. Jetzt auch mit
lle Features: Double Hires
Grafics und 80 Zeichen Dump
mittels Druckerpuffer nachrustbar
über Bufferboard.
Grapp e à
ten 16 K Druckpuffer, der auf
32 oder 64 K aufrustbar ist. i
Besitzt alle Vorzüge des Gianola +
hat aber zusåtzlich einen integrier-
Serielles Druckerinterface
speziell fur den Apple Image-
writer.
low
KNRAPPLER C
Seriell-nach-Parallel-Wandler für
den Ilc im Kabel integriert.
wie Hotlink, jedoch zusätzlich
Imagewriter Emulation und Grafik
Software-Diskette.
panday®ftı.... :-:
Uhlandstraße 195 - 1000 Berlin 12 - Mo-Fr 10-18 Uhr, Sa 10-13 Uhr
Telefon: 0 30/31 04 23 - Telex: 185859
Peeker 8/85
ThunderScan."
Ein neues optisches Lesegeråt, das beliebige
Vorlagen in MacPaint Ubertrågt: Fotos, Zeich-
nungen, Landkarten und Illustrationen werden
in den Apple-Imagewriter eingespannt und von
einem Lesekopf, der das Farbband ersetzt,
abgetastet.
é File Edit Scanner Tools
ThunderScan""
Light Intensity Gauge
Light q
Contrast = 110%
JE
Brightness = +10
(Pause)
æ
Lines to g0: 186
@ 32 Graustufen
@ 80 Punkte/cm Auflösung
@ UbertragungsmaBstab 25% - 400 %
@ Vorlagen bis 20 x 25 cm | |
@ Nachtragliche Veranderung des Kontrasts T
und der Helligkeit. Sc
Panday®&ftı....:-
Uhlandstraße 195 - 1000 Berlin 12 - Mo-Fr 10-18 Uhr, Sa 10-13 Uhr
Telefon: 0 30/3104 23 - Telex: 185 859
und die
FEW
wir haben die
Software...
ALLES FÜR DEN APPLE Il+, Ile, IIc UND MACINTOSH
ET ing. Eden
UHLANDSTR. 195 - D- 1000 BERLIN 12
TEL.:(030)] 310 423 - TELEX: 185859
Autorisierter gece Fachhändler MICROSOFT. Distributor
11
B — Mit Hilfe des B-Befehls erfolgt die
Rückkehr nach BASIC. Soll das Programm
anschließend weiterbenutzt werden, so ist
ein Warmstart mit „GOTO 10000" mög-
lich. Zu beachten ist, daB nach Verlassen
des Programms keine DOS-Befehle mehr
funktionieren, da das DOS aus Sicher-
heitsgründen „abgekoppelt“ wird. Soll mit
dem Diskettensystem weitergearbeitet
werden, so muß das DOS neu gebootet
werden.
3. Aufbau und Funktion des Pro-
gramms
Das Testprogramm besteht aus einem Ap-
plesoft-Programm für die Tastatur-Eingabe
und Bildschirm-Ausgabe sowie einigen
Assembler-Unterprogrammen für alle zeit-
kritischen Disketten-Operationen. Das
BASIC-Programm liegt ab $4000 und die
Assembler-Unterprogramme ab $9000 im
RAM. Das BASIC-Hauptprogramm be-
steht aus den Zeilen 10000 bis 10630. Die
Zeilen 11000 bis 29240 enthalten die Un-
terprogramme für die einzelnen Befehle
und die Zeilen 30000 bis 49090 solche
Unterprogramme, die von mehreren Be-
fehlen gemeinsam benutzt werden. In den
Zeilen 50000 bis 55520 erfolgt die Initiali-
sierung des Programms.
Eine ausführliche Beschreibung des Pro-
grammablaufs ist aus Platzgründen nicht
möglich. Es sollen deshalb nur einige Er-
låuterungen zur Ansteuerung des Control-
lers und Laufwerks gegeben werden.
Das Ein- bzw. Ausschalten des Laufwerks
und das Umschalten zwischen den beiden
Laufwerken erfolgt durch , PEEK" -Befehle
unmittelbar vom BASIC-Programm aus
(Zeile 33020 und 33030). Ebenso erfolgt
die Abfrage des Schreibschutzes durch
„PEEK“-Befehle (Zeile 36010 und
36020). Alle anderen Funktionen sind zeit-
Kritisch und können deshalb nicht direkt im
BASIC-Programm ausgeführt werden,
sondern rufen über „CALL“-Befehle As-
sembler-Unterprogramme auf. Für alle As-
sembler-Unterprogramme wird in Adresse
250 ($00FA) die Nummer des Steckplat-
zes (Slot) * 16 übergeben (Zeile 30090).
Zum Positionieren wird in Adresse 251
bis 253 ($00FB bis $00FD) die Zielspur,
die momentane Spur und die Beruhi-
gungszeit übergeben (Zeile 34020 und
34030). Die Positionier-Routine ist im As-
sembler-Programm in Zeile 171 bis 247
enthalten. Um die Laufwerke beim Positio-
nieren unter gleichen Bedingungen wie im
echten Betrieb zu testen, wurde der Posi-
tionier-Algoritnmus unverändert von DOS
3.3 Ubernommen.
12
Zum Schreiben wird in Adresse 251 bis
254 ($00FB bis $00FE) das FluBwechsel-
muster, die Anzahl der zu schreibenden
Disk-Bytes (im 2er-Komplement) und der
Schreibmodus übergeben (Zeile 38030
und 37020). Die Schreib-Routine ist im
Assembler-Programm in den Zeilen 68 bis
119 enthalten.
a. Die Flußwechselmuster
Das Testprogramm erlaubt die Auswahl
zwischen drei verschiedenen Flußwech-
selmustern, die den drei beim Apple-Auf-
zeichnungsverfahren vorkommenden Fre-
quenzen bzw. Flußwechselabständen ent-
sprechen. Beim Apple-Aufzeichnungsver-
fahren ist eine Bitzelle 4 usec lang. Die
Definition der Datenflußwechsel ist die
gleiche wie bei FM (s. Peeker 3/85, S. 19/
20). Im Gegensatz zu FM und MFM wer-
den beim Apple jedoch überhaupt keine
Taktflußwechsel geschrieben. Die Bytes,
die auf die Diskette geschrieben werden,
werden Disk-Bytes genannt, da sie nicht
direkt den eigentlichen Daten-Bytes ent-
sprechen. Um eine kontinuierliche FluB-
wechselfolge mit 4 usec Abstand zu
schreiben, muß man demnach ein Disk-
Byte mit dem Bitmuster 11111111 = $FF
= 255 verwenden. Das Bitmuster
10101010 = $AA = 170 erzeugt eine
kontinuierliche Aufzeichnung mit 8 usec
Flußwechselabstand. Etwas schwieriger
wird es bei 12 usec Abstand, was einem
Bitmuster 100... entspricht, das sich nicht
in einem 8-Bit-Disk-Byte unterbringen
läßt. Mit einem einfachen Trick kann man
aber mit dem Controller 9- oder 10-Bit-
Disk-Bytes schreiben. Dazu werden die
ersten 8 Bits in den Controller ausgege-
ben und der Controller fügt solange Nullen
hinzu, bis das nächste Disk-Byte ausge-
geben wird. Das Bitmuster 10010010 =
$52 = 146 erzeugt die Aufzeichnung
100100100 und damit das gewünschte
Muster, wenn die Disk-Bytes im Abstand
von 36 usec (anstelle 32 usec) an den
Controller ausgegeben werden. Bild 1 bis
3 zeigt die Aufzeichnung für die drei FluB-
wechselmuster.
b. Die Spurkapazität
Die nominale Spurkapazität einer Apple-
Diskette berechnet sich aus folgender
Formel:
Ks=U:B
In der Formel ist Ks die (unformatierte)
Kapazität pro Spur in Disk-Bits, U ist die
Umdrehungsdauer der Diskette und B ist
die Zeitdauer einer Bitzelle.
Bei nominaler Drehzahl ist die Umdre-
hungsdauer U = 200 msec = 200 000
usec.
Der Original-US-Apple hat eine Oszillator-
frequenz von f = 14,31818 MHz, was ei-
ner Periodendauer von T = 1 : f = 69,841
nsec entspricht. Der Prozessortakt wird
durch 14fache Teilung erzeugt und hat
somit eine Periodendauer von 14: T = 978
nsec. Jeder 65. Prozessortakt wird jedoch
um 2 Oszillatorperioden verlängert und ist
somit 16 : T = 1117 nsec lang. Damit
beträgt die mittlere Dauer eines Prozes-
sortaktes (64 :14-T+ 16:T):65 = 912:
T : 65 = 980 nsec. Die Länge einer Bitzel-
le ist schließlich 4 Prozessortakte und da-
mit im Mittel 4 - 912 - T : 65 = 3648 : T : 65
= 3919,7 nsec = 3,9197 usec.
Damit beträgt die Kapazität einer Spur Ks
= 200 000 : 3,9197 = 51024 Disk-Bits.
Für 8-Bit-Disk-Bytes ist damit die Kapazi-
tät pro Spur 51024 : 8 = 6378 Disk-Bytes
und für 9-Bit-Disk-Bytes 51024 : 9 = 5669
Disk-Bytes.
c. Das Schreiben
Der Schreibmodus wird durch Bit 7 und 6
in Adresse 254 ($00FE) definiert. Ein Wert
von 64 ($40) bedeutet, daß eine ganze
Spur geschrieben werden soll. Um sicher-
zustellen, daß auch bei Drehzahlschwan-
kungen eine vollständige, in sich ge-
schlossene Spur entsteht, werden 10 %
mehr Disk-Bytes geschrieben. An der
Stelle, wo das Schreiben ausgeschaltet
wird, entsteht eine sog. Stoßstelle. Bild 4
zeigt ein Beispiel, wie eine solche StoB-
stelle entsteht. Der Abstand t zwischen
zwei gleichen FluBwechseln kann im Bei-
spiel — je nach momentaner Umdrehungs-
dauer — jeden Wert zwischen 0 und 16
usec haben. Je nachdem, welchen Wert t
hat, tritt beim Lesen der Stoßstelle ein
Fehler auf oder nicht.
Ein Wert von 0 für den Schreibmodus be-
deutet, daß ununterbrochen geschrieben
werden soll, bis eine Taste gedrückt wird.
d. Das Lesen
Beim Lesen werden in Adresse 251 bis
253 ($00FB bis $00FD) das Flußwechsel-
muster und die Anzahl der zu lesenden
Disk-Bytes übergeben (Zeile 38030). Die
Anzahl der zu lesenden Disk-Bytes ist ge-
nau gleich der nominalen Spurkapazität.
Das Assembler-Unterprogramm zum Le-
sen befindet sich in den Zeilen 47 bis 69.
Bei Rückkehr vom Unterprogramm wird in
Adresse 254 und 255 ($00FE und $00FF)
die Anzahl der fehlerhaft gelesenen Disk-
Bytes übergeben. Um die Software zu ver-
Peeker 8/85
einfachen, wird beim Lesen nicht auf den
Spuranfang synchronisiert, sondern das
Lesen beginnt da, wo sich der Schreib-/
Lesekopf gerade befindet. Das Programm
liest also auch die beim Abschalten des
Schreibens entstandene StoBstelle, was
håufig ein fehlerhaftes Disk-Byte zur Folge
hat. Aus diesem Grund ist ein Ergebnis mit
einem Lesefehler praktisch als fehlerfrei
anzusehen und wird in der grafischen Dar-
stellung auch so ausgegeben.
e. Die Umdrehungsdauer
Die Messung der Umdrehungsdauer er-
folgt indirekt über eine Messung der Spur-
kapazitàt. Für ein einwandfreies Funktio-
nieren der Software (insbesondere von
Nibble-Kopierern) ist es erforderlich, daß
mindestens die nominale Spurkapazität
auf die Diskette paßt. Für alle Euro-Apples,
die mit einer von US-Apples etwas abwei-
chenden Oszillatorfrequenz arbeiten, be-
deutet das, daß die nominale Umdre-
hungsdauer nicht 200 msec beträgt, son-
dern dann erreicht ist, wenn 6378 Disk-
Bytes auf eine Spur passen. Deshalb darf
die Umdrehungsdauer auch nicht — falls
vorhanden — mit der Stroboskobscheibe
oder mit einem Digitalzähler auf genau 200
msec eingestellt werden.
Für die Messung der Spurkapazität wird
zunächst eine ganze Spur mit 4 usec FluB-
wechselabstand (Flußwechselmuster 255
= $FF) beschrieben. Unmittelbar danach
werden drei Disk-Bytes mit 8 usec Fluß-
wechselabstand als Index aufgezeichnet.
|[——— e s-Byte——— h. À |
Í Bitzelle
Daten ($FF)
Magnetisierung
Leseimpulse
E |
Bild 1: Aufzeichnung mit 4 usec FluBwechselabstand
Me Disk-Byte
|Bitzelle
|
Daten ($AA)
Magnetisierung
Leseimpulse
KG
Bild 2: Aufzeichnung mit 8 usec FluBwechselabstand
Peeker 8/85
TN
re re re rs re oe
s
|
l
|
ro
=”,
|
|
|
| Daten ($52)
Magnetisierung
Leseimpulse
1. Umdrehung
2. Umrehung
resultierende
Magnetisierung
Lesesignal
Daten
| Bitzelle
1
|
111010. 110101110910
e e Ee r —
Technik a
Zum Erzeugen deser Aufzeichnung wird
der Schreiomodus zu 192 ($C0) gesetzt.
Nach dem Schreiben wird gelesen und die
Anzahl der Disk-Bytes von Index zu Index
gezåhlt. Die zugehörige Assembler-Routi-
ne ist in den Zeilen 122 bis 152 enthalten.
Bei der Ruckkehr in das BASIC-Programm
enthålt Adresse 252 und 253 ($00FC und
$00FD) die Anzahl der Disk-Bytes. Adres-
se 254 ($00FE) enthålt eine Fehlermarke.
Wurde der Index nicht gefunden, weil z.B.
keine Diskette eingelegt war oder weil der
Schreib- oder Lesekreis defekt war, dann
ist die Fehlermarke ungleich null. Das BA-
SIC-Programm gibt dann anstelle der Ab-
weichung das Wort „Fehler“ aus. Voraus-
setzung für die Messung der Umdre-
hungsdauer ist also, daß der Schreib-/
Lesekreis einwandfrei funktioniert.
L
Disk-Byl ta ng
E
Bild 3: Aufzeichnung mit 12 usec FluBwechselabstand
1 0 1 0 1 1 0 1
Bild 4: Beispiel einer StoBstelle bei einer Aufzeichnung von
8 usec FluBwechselabstand
13
14
Tabelle 1:
APPLE II DISKETTENSYSTEM TEST
Controller-Steckplatz (Slot): 6
Laufwerk (Drive): 1
Laufwerk ein-/ausschalten: aus
Positionieren auf Spur Ø
1 Spur nach innen
1 Spur nach auBen
Positionieren auf Spur:
hin und her zwischen Spur
= J > H J O A
Schreibschutz testen
Flußwechselabstand: 4 microsec
Schreib/Lese Modus: 1 Spur
Schreiben
Lesen
abwechselnd schreiben und lesen
m C (OS J H
Umdrehungsdauer messen
Spur-Justage: Trigger generieren
Ausgang nach BASIC
wac
DISKTEST
10000 REM Testprogramm für Apple II Diskettensysteme
10010 REM von Dipl.-Ing. Gerhard Berg - 2.3.1985
10020 :
10100 POKE 35,24: IF WS > ® GOTO 10210
10110 HOME : IF PEEK (104) < 64 GOTO 29100
10120 HM = 36864: HIMEM: HM
10130 :
10140 AS =
10150 PH
10160 BZ
10170 SN
10180 LN
10190 :
10200 GOSUB 50000:F = Ø: GOSUB 30000
10210 GOSUB 490700: IF F > Ø GOTO 10610
10220 :
10500 REM Hauptschleife
10510 GOSUB 45000: GOSUB 42000:F = Ø
10520 FOR B = 1 TO MB: IF MID$ (BT$,B,1) = EZ$ GOTO 10540
10530 NEXT :B = 9
10540 IF FB(B) > Ø AND SN = Ø THEN F 1: GOTO 10610
10550 IF FB(B) > 1 AND AE = @ THEN F = 2: GOTO 10610
10560 IF FB(B) > 2 AND S(SN,LN) < Ø THEN F = 3: GOTO 10610
10570 IF FB(B) < 4 GOTO 10600
10580 GOSUB 36000: IF SS = 1 THEN F = 4: GOTO 10610
10590 GOSUB 41000: IF EZ$ = "N" GOTO 10500
10600 ON B GOSUB 11000,12000,13000,14000,15000,16000,17000,
18000 ,40020,20000,21000,22000,23000,25000,25000,
40020 27000. 28000 , 29000
10610 IF F > Ø THEN GOSUB 40000
10620 GOTO 10500
10630 :
11000 REM Steckplatz auswàhlen
11010 IF SN > Ø THEN AE = Ø: GOSUB 33000
11020 Bl = 1: GOSUB 44000: GET EZ$:SN = ASC (EZ$) - 48
11030 IF SN < 1 OR SN > 7 THEN PRINT BEL$;: GOTO 11020
11Ø4Ø GOSUB 42000: PRINT "Bitte warten!";
11050 GOSUB 30000: GOSUB 42000: GOTO 31000
11060 :
12000 REM Laufwerk auswàhlen
12010 LN = 1 + NOT (LN — 1): GOTO 32000
12020 :
13000 REM Laufwerk ein-/ausschalten
13Ø1Ø AE = NOT AE: GOTO 33000
13Ø2Ø :
14000 REM Nach Spur Ø positionieren
14010 S(SN,LN) = MS + 4:S = 0: GOTO 34000
14020 :
15000 REM 1 Spur nach innen
15010 S = S(SN,LN) + 1: IF S > MS GOTO 40020
15020 GOTO 34000
15030 :
16000 REM 1 Spur nach auBen
16010 S = S(SN,LN) — 1: IF S < Ø GOTO 40020
16020 GOTO 34000
16030 :
17000 REM Positionieren
17010 Bl = 7: GOSUB 44000: GOSUB 35000
17020 IF S(SN,LN) < Ø THEN HV = S: GOSUB 14000:S = HV
17030 GOTO 34000
35: REM Anzahl Spuren
2: REM Phasen pro Spur
25: REM Beruhigungszeit in msec
6: REM Steckplatz-Nr.
1: REM Laufwerk-Nr.
17040 :
18000
18010
18020
18030
18040
18050
18060
18070
18080
18090
20000
20010
20020
20030
20040
21000
21010
21020
21030
21040
21050
22000
22010
22020
22030
23000
23010
23020
23030
23100
23110
REM Hin und her positionieren
Bl = 8: GOSUB 44000
GOSUB 35000:SH(1) = S: PRINT " und ";
GOSUB 35000:SH(2) = S: GOSUB 43000
IF S(SN,LN) < Ø THEN GOSUB 14000
FOR I = 1 TO 2:S = SH(I): GOSUB 34000
IF PEEK (TD) > 127 GOTO 18080
NEXT I:HV = PEEK (TG): GOTO 18050
Bl = 8: GOSUB 44000: GOTO 42000
REM Schreibschutz testen
GOSUB 36000: PRINT "Diskette ist ";
IF SS = Ø THEN PRINT "nicht ";
PRINT "schreibgeschützt.";: RETURN
REM FluBwechselabstand wåhlen
FM = FM + 1: IF FM = 4 THEN FM = 1
AB = KS: IF FM = 3 THEN AB = INT (AB * 8 / 9)
Bl = 11: GOSUB 44000
PRINT SPC( FM < 3);FM * 4;" microsec": RETURN
REM Schreib-/Lese-Modus wåhlen
MO = MO + 1: IF MO = 4 THEN MO = 1
Bl = 12: GOSUB 44000: PRINT MO$(MO);: RETURN
REM Schreib-Funktion
IF MO < > 2 THEN GOSUB 43000
ON MO GOTO 231ØØ,37ØØØ,232ØØ
REM Dauernd schreiben
SM = Ø:Fl = FM:Al = AB: GOSUB 37020: GOTO 42000
23120 :
23200
23210
23220
23230
23240
25000
25010
25020
25100
25110
25120
25130
25140
25150
25200
25210
25220
25230
25240
25300
25310
25320
25330
25340
25350
25360
25370
25400
25410
25420
25430
25440
25450
25460
25470
25480
25500
25510
25520
25530
25540
25600
25610
25620
25630
25640
25650
25660
25670
25680
25690
25700
25710
REM Ganze Diskette beschreiben
FOR S = @ TO MS: GOSUB 34000: GOSUB 37000
IF PEEK (TD) > 127 GOTO 42000
NEXT : GOTO 42000
REM (Schreiben und) lesen
ON MO GOTO 251ØØ,252ØØ,253ØØ
REM Dauernd (schreiben und) lesen
GOSUB 43000: POKE 35,22: HOME
GOSUB 25200: PRINT
IF PEEK (TD) < 128 GOTO 25120
GOTO 48000
REM Einmal (schreiben und) lesen
IF B = 15 THEN GOSUB 37000
GOSUB 39000: PRINT "Bytes gelesen: ";AB;
PRINT " — Fehler: ";LF;: RETURN
REM Ganze Diskette (schreiben und) lesen
GOSUB 43000: POKE 35,22: HOME : GOSUB 47000
FOR S = Ø TO MS: GOSUB 34000
IF B = 15 THEN GOSUB 37000
GOSUB 39000:LF(S) = LF: GOSUB 46000
IF PEEK (TD) > 127 THEN TS = S: GOTO 25400
NEXT :TS = MS
GOSUB 42000: VTAB 23: POKE 35,24
PRINT "T — Text-Ausgabe G — Grafik-Ausgabe"
PRINT "D — Drucker-Ausgabe H - Hauptmenü";
GOSUB 45000: FOR I = 1 TO 4
IF EZ$ = MID$ ("TDGH",I,1) GOTO 25460
NEXT : PRINT BEL$;: GOTO 25430
TEXT : POKE 35,22 + (I = 4) * 2: HOME
ON I GOTO 255ØØ,256ØØ,258ØØ,49ØØØ
REM Text-Ausgabe
GOSUB 47000
FOR S = Ø TO TS: GOSUB 46ØØØ: NEXT
GOTO 2543Ø
REM Drucker-Ausgabe
PR# 1: POKE 35,2Ø
PRINT B$(11);" ";: GOSUB 21040: PRINT
FOR I = 1 TO SP: PRINT "Spur Fehler ";
NEXT : PRINT
FOR I = Ø TO ZE - 1
FOR J = Ø TO MS STEP ZE
S= I+ J: IF S > TS GOTO 25700
LF = LF(S):L1 = LEN ( STR$ (LF))
PRINT " ";S; SPC( 3 + (S < 10));LF; SPC( 8 — L1);
NEXT : PRINT : NEXT
IN# Ø: PR# Ø: GOTO 25430
Peeker 8/85
BUCH-SHOP
Apple DOS 3.3
von Ulrich Stiehl
2. Aufl. 1984, 203 S., kart.,
DM 28,-
Dies ist die erste deutschspra-
chige Darstellung des Disket-
tenbetriebssystems DOS 3.3
für den Apple II Plus/lle, die
sich sowohl an Applesoft- als
auch an Assembler-Program-
mierer wendet. Sinngemäß ist
das Buch zweigeteilt:
Der erste Teil behandelt aus-
führlich die dem Applesoft-Pro-
grammierer zur Verfugung ste-
henden DOS-Befehle, wobei
die Textfiles wegen ihrer gro-
Ben Bedeutung und der ver-
gleichsweise komplizierten
Handhabung besonders darge-
stellt werden. Viele Textfile-
Tricks werden hier zum ersten-
mal geschildert.
Aber auch im zweiten Teil fin-
det der reine Applesoft-Pro-
grammierer insbesondere in
dem Kapitel , Vermischte Tips,
Tricks und Patches“ zahlreiche
Anregungen. Im übrigen ist der
zweite Teil für Assembler-Pro-
grammierer gedacht. Neben ei-
ner detaillierten Beschreibung
der DOS-Interna enthålt dieser
Teil elf vollståndige RWTS-An-
wenderprogramme - z. B.
CPM-Refiner, DOS-lose Da-
tendisk, TSL-Maker, File-
Reader, Pseudo-Disk-Driver
und Fastbrun-Routine —, die
Techniken enthüllen, die bis-
lang noch niemals publiziert
worden sind. Dieses DOS-
Buch ist deshalb der unent-
behrliche Begleiter für jeden
Apple-Programmierer.
Apple II
Basic Handbuch
von Douglas Hergert
304 Seiten, 116 Abb.
DM 32,-
Das Buch ist als Nachschlage-
werk konzipiert, daß seinen
Platz neben jedem APPLE II,
II+ und Ile haben sollte. Es
richtet sich an Anfänger und
fortgeschrittene Program-
mierer.
Aus der Praxis heraus präsen-
tiert der Autor Tips und Vor-
schläge, die das Programmie-
ren leichter und zugleich effi-
zienter machen. Alle Applesoft-
und Integer-BASIC-Begriffe
sind alphabetisch aufgelistet
und werden eingehend erklärt.
Peeker 8/85
Dazu werden alle DOS-Befehle
(neben vielen Begriffen der
Computerterminologie) vorge-
stellt.
Beispielprogramme zeigen
dem Nutzer, wie jeder Befehl
funktioniert und helfen, die rich-
tige Anwendung zu üben. Un-
ter anderem lernt der Leser
den besten Weg, um FOR/
NEXT-Schleifen und IF/THEN-
Entscheidungen für seine
Zwecke einzusetzen.
Durch die präzise und leicht
verständliche Sprache des Au-
tors werden auch schwierige
Befehle einfach in der Anwen-
dung.
Apple Maschinen-
sprache
von Don und Kurt Inman
1984, 208 S., zahlr. Abb. und
Tabellen, DM 49, —
Dieses Buch ist wahrscheinlich
die beste Einführung in die
6502-Programmierung für den-
jenigen Assembler-Anfänger,
der zuvor noch nie ein Maschi-
nenprogramm geschrieben
hat.
Aus dem Inhalt:
Applesoft II BASIC — kurzge-
faßt — Alles über Zeichen — AL
les über Speicher — Alles über
Maschinenbefehle — Maschi-
nenprogramme mit BASIC ein-
geben — Graphik — Text — Ton —
Arithmetik — Was tun mit den
Maschinenprogrammen
Apple II
leicht gemacht
von Joseph Kascmer
1984, 185 S., zahlr. Abb., kart.,
DM 28,-
Dies ist ein Buch, wie es sich
jeder Apple-Anfånger nur wün-
schen kann: Schrittweise,
leichtverståndliche Anleitung
zum Umgang mit dem Apple
mit einigen durchsichtigen, un-
komplizierten Beispielen in Ap-
plesoft, die ihn nicht Abschrek-
ken, sondern ermutigen sollen,
sich mit dem Geråt nåher ver-
traut zu machen. Damit ist „Ap-
ple Il leicht gemacht“ das idea-
le Einsteigerbuch für den rei-
nen Anwender, der nicht nur
„auf den Knopf drücken“, son-
dern zumindest einige Details
aus der Black Box namens Ap-
ple erfahren will.
Aus dem Inhalt:
Kontrolle des Geräts — Schrei-
ben und Zeichnen auf dem
Bildschirm — Geheimnisvolle
Abläufe: Programme — Ver-
schiedene Eingriffsmöglichkei-
ten — Mobile Speicher: Disket-
ten — Kontrollmöglichkeiten —
Das Innenleben
Apple Assembler
Tips und Tricks
von Ulrich Stiehl
1984, 226 S., 3 Abb., kart.,
DM 34,—
„Apple Assembler“ wendet
sich an alle, die bereits Anfän-
gerkenntnisse der 6502-Pro-
grammierung haben - z. B.
aufgrund des Buches „Apple
Maschinensprache“ — und nun-
mehr ein Nachschlagewerk für
ihren Apple II Plus/lle/lic su-
chen, in dem alle wichtigen
ROM-Routinen sowie eine
Vielzahl sonstiger Hilfspro-
gramme in einer systemati-
schen Form zusammengestellt
werden. Insgesamt umfaßt die-
ses Buch über 40 Utilities, dar-
unter mehrere völlig neuartige
Programme wie Double-Lores,
Double Hires, Screen-Format
U. a.
Der erste Teil enthàlt ein Repe-
titorium der wichtigsten Befeh-
le, Adressierungsarten und
sonstigen Besonderheiten des
6502.
Im zweiten Teil werden alle
Adressen des Monitors zusam-
mengestellt, die für Assembler-
Programmierer von Nutzen
sein können. Darüber hinaus
findet der Leser Unterroutinen
für hexadezimale Addition/
Subtraktion/Multiplikation/Divi-
sion, Binär-Hex-ASCII-Um-
wandlung usw.
Der dritte Teil befaßt sich mit
der Speicherverwaltung der
Language Card und der lle-
64K-Karte und enthält Move-
Programme zum Verschieben
von Daten in die und aus der
Language Card sowie der 64K-
Karte.
Der vierte Teil ist dem Ap-
plesoft-ROM gewidmet und li-
stet eine große Anzahl nützli-
cher Interpreter-Adressen. Bei
den Utility-Programmen liegt
das Schwergewicht auf Fließ-
kommamathematik einschließ-
lich Print Using.
Der letzte Teil behandelt den
Text- und Graphikspeicher.
Neben einem professionellen
Maskengeneratorprogramm
werden auch Routinen zur
Double-Lores- und Double-Hi-
res-Grafik vorgestellt.
Arbeiten mit dem
Macintosh
von N. Hesselmann
416 Seiten, 320 Abb. DM 54, —
Das Buch erklärt den Umgang
mit dem Macintosh von Grund
auf, wobei auch auf elementare
Dinge eingegangen wird, wie
z. B. die Benutzung der Tasta-
tur und der Maus, das Einlegen
von Disketten und den System-
start. Ganz besonderes Augen-
merk wird auf die Erklärung der
speziellen Software-Umge-
bung des Macintosh gelegt,
wobei das Menü- und Fenster-
konzept sowie das Anwählen
durch Piktogramme gekenn-
zeichneter Funktionen klar dar-
gestellt wird.
Der Umgang mit den Program-
men MacPaint und MacWrite
wird erläutert; dies geschieht
teilweise anhand von Beispie-
len, die leicht nachvollzogen
werden können. Ein umfangrei-
ches Kapitel ist dem für den
Macintosh erhältlichen Micro-
soft-BASIC gewidmet.
BASIC Ubungen
für den Apple
von J. P. Lamoitier
1983, 252 S., zahlr. Abb., kart.,
DM 38,-
Das Buch ist konzipiert, allen
Apple-Anwendern Applesoft-
BASIC durch praktische Ubun-
gen an Hand von reellen Pro-
grammen beizubringen. Daten-
verarbeitung, Statistik, kom-
merzielle Programme, Spiele
und vieles mehr. Jede Ubung
beinhaltet eine Beschreibung
der Problemstellung, eine Ana-
lyse der Lösungsmöglichkei-
ten, ein Flußdiagramm und ein
fertiges Programm samt Pro-
belauf.
Aus dem Inhalt:
Ihr erstes BASIC-Programm —
FluBdiagramme — Ubungen mit
Integerzahlen — Elementare
Beispiele aus der Geometrie —
Allgemeine Ubungen aus der
Datenverarbeitung — Mathema-
tische Berechnungen — Kauf-
månnische Berechnungen —
Spiele — Operations Research
— Statistik
Apple ProDOS
für Aufsteiger
Band 1
von Ulrich Stiehl
1984, 202 S., kart., DM 28,-
ProDOS ist das neue „profes-
sionelle DOS" (Professional
Disk Operating System) für den
Apple lle sowie den mit einer
Language Card ausgestatteten
Apple II Plus. Band 1 befaßt
sich mit den theoretischen
Grundlagen von ProDOS, der
internen und externen Spei-
cherorganisation und enthålt
grundlegende Beispielpro-
gramme für Assembler-Pro-
grammierer sowie generelle
Untersuchungen zum BASIC-
SYSTEM. Da ProDOS über er-
heblich vielfältigere und lei-
stungsfähigere, zugleich je-
doch erheblich kompliziertere
Dateistrukturen verfügt, sind
theoretische Kenntnisse von
ProDOS unabdingbar, wenn
man die Features von ProDOS
voll ausschöpfen will.
Aus dem Inhalt:
Ein erster Überblick — ProDOS
und DOS 3.3 — Interne Spei-
cherorganisation — Externe
Speicherorganisation — MLI
(Machine Language Interface)
— ProDOS für Applesoft-Pro-
grammierer
19
16
25720
25800
25810
25820
25830
25840
25850
25860
25870
25880
25890
25900
25910
25920
25930
25940
25950
25960
25970
27000
27010
27020
27030
27040
27050
27060
27070
27080
27090
27100
27110
27120
27130
27140
27150
27160
27170
27180
27190
27200
27210
27220
27230
28000
28010
28020
28030
29000
29010
29020
29100
29110
29120
29130
29140
29200
29210
29220
29230
29240
30000
30010
30020
30030
30040
30050
30060
30070
30080
30090
30100
30110
31000
31010
31020
31030
32000
32010
32020
33000
33010
33020
33030
33040
33059
REM Grafik-Ausgabe
VTAB 21:Hl = INT (MS / 40) + 1:H2 = 5 * Hl
FOR I = @ TO TS STEP H2
HTAB 2 + I * 6 / (7 * Hl): PRINT I;: NEXT
HGR : HCOLOR= 3:SF = 152 / LOG (AB)
FOR I = Ø TO 3:Y = 152 - LOG (10 1 I) * SF
HPLOT Ø,Y TO 2,Y: NEXT
FOR I = @ TO TS STEP Hl
= 10 + I * 6 / Hl: HPLOT X,153 TO X,154
= INT (I / H2) * H2 THEN HPLOT TO X,157
=6 + Hl:X = X1: HPLOT X1,152
FOR S = 0 TO TS
LF = LF(S): IF LF = Ø THEN LF = 1
Y = 152 — L0G (LF) * SF: HPLOT TO X,Y
X = X + 6 / Hl: HPLOT TO X,Y: NEXT
HPLOT TO X,152: HPLOT TO X1,152: GOTO 25430
REM Umdrehungsdauer messen
GOSUB 43000: POKE 35,22: HOME
HGR : HCOLOR= 3:Y = 0
X1 = 2 * KS / 100: REM 1%
FOR X = 140 - X1 TO 140 + X1 STEP X1
HPLOT X,@ TO X,154: NEXT
VTAB 21: HTAB 2: PRINT "—1%"; TAB( 38);"+1%";
IF PEEK (TD) > 127 GOTO 48000
SM = 192:A1 = KS * 1.1:F1 = 1: GOSUB 37020
CALL UR: VTAB 22: HTAB 18: CALL ZL
IF PEEK (254) = Ø GOTO 27120
PRINT "Fehler";: GOTO 27070
BY = PEEK (252) + 256 * PEEK (253) + 1
INT ((BY — KS) * 1000 / KS + 0.5) / 10
= ABS (UT):UT$ = STR$ (UA): IF UA > 20 GOTO 27110
IF UA > Ø AND UA < 1 THEN UT$ = "Ø" + UT$
UT$ = VZ$( SGN (UT) + 2) + UT$
IF UT = INT (UT) THEN UT$ = UT$ + ".Ø"
PRINT UT$:"Z":
X = 140 + (BY — KS) * 2: IF X < Ø THEN X = Ø
IF X > 279 THEN X = 279
HPLOT X,Y:Y = Y + 1: IP Y < 155 GOTO 27070
GOTO 27020
REM Trigger für Spur-Justage generieren
IF S(SN,LN) < > JS THEN F = 7: RETURN
GOSUB 43000: POKE 253,190: CALL JR: GOTO 42000
REM Ausgang nach BASIC
HOME : POP : END
PRINT "Bitte geben Sie ein:": PRINT
PRINT "POKE 1Ø4,64": PRINT "POKE 16384,Ø"
PRINT : PRINT "und laden Sie das Programm neu!"
GOTO 29210
HOME : PRINT "Fehler in 'DATA'- Befehlen!"
PRINT CHR$ (7);: CLEAR : END
REM Steckplatz (Slot) auswählen
F$(5) = LEFT$ (F$(5),35) + STR$ (SN) + "!"
PA = 49152 + 256 * SN: FOR I = 1 TO 7 STEP 2
IF PEEK (PA + I) = CE(I) GOTO 30050
SN = @:F = 5: RETURN
NEXT :SA = 49280 + 16 * SN
PS = Ø: FOR I = Ø TO 255
PS = PS + PEEK (PA + I): NEXT
IF PS < > 31558 THENF=6
POKE 25Ø,SN * 16
RETURN
REM Steckplatz Nr. ausgeben
IF SN = ® THEN RETURN
Bl = 1: GOSUB 44000: PRINT SN
REM Laufwerk auswählen
Bl = 2: GOSUB 44000: PRINT LN: GOSUB 34050
REM Motor ein-/ausschalten
Bl 3: GOSUB 44000: PRINT AE$(AE)
HV PEEK (SA + 8 + AE): REM Motor ein/aus
HV PEEK (SA + 9 + LN): REM Laufwerk 1 / 2
REM In obigen Befehlen keine "POKEs" verwenden!
RETURN
33069 :
34000
REM Positionieren nach Spur 'S'
IF S = S(SN,LN) THEN RETURN
POKE 251,5 » PH: POKE 252,S(SN,LN) * PH
POKE 253,BZ: CALL PR
S(SN,LN) = S: IF B > 13 THEN RETURN
REM Spur # ausgeben
Bl = 7: GOSUB 44000: IF S(SN,LN) < Ø THEN RETURN
PRINT S(SN,LN);: RETURN
REM Spur-Nr. eingeben
H = POS (0) + 1: GOTO 35030
PRINT BEL$;
VTAB V: HTAB H: CALL ZL
INPUT "";EZ$: IF EZ$ = "" GOTO 35020
S = VAL (EZ$): IF S < Ø OR S > MS GOTO 35020
IF INT (S) < > S OR STR$ (S) < > EZ$ GOTO 35020
VTAB V: HTAB H: CALL ZL: PRINT S;: RETURN
REM Schreibschutz prufen
HV = PEEK (SA + 13):SS = PEEK (SA + 14) > 127
HV = PEEK (SA + 12): RETURN
REM Schreiben
Al = AB * 1.1:F1 = FM:SM = 64
GOSUB 38000: POKE 254,SM
CALL SR: RETURN
REM Byte-Anzahl und Flußwechselabstand setzen
Al = 65536 — INT (Al): REM 2'er Komplement
A2 = INT (Al / 256):Al = Al - AR x 256
POKE 251,FM(Fl): POKE 252,A1: POKE 253,A2
RETURN
REM Lesen
Al = AB:Fl = FM: GOSUB 38000: CALL LR
LF = PEEK (254) + 256 * PEEK (255): RETURN
REM Fehler-Nachricht ausgeben
GOSUB 42000: FLASH : PRINT F$(F);
NORMAL : PRINT BEL$;: RETURN
REM Lösch-Warnung ausgeben
T$ = "Spur " + STR$ (S(SN,LN)) + " wird"
IF MO = 3 AND B < 17 THEN T$ = "Alle Spuren werden"
POKE 35,24: VTAB 23: PRINT T$;" gelöscht!"
PRINT "weiter? (J/N) ";
PRINT BELS$;: GET EZ$: GOSUB 45500
IF EZ$ < > "J" AND EZ$ < > "N" GOTO 41050
REM Zeile 23 und 24 löschen
POKE TT,Ø: VTAB 23: HTAB 1: CALL ZL
VTAB 24: CALL ZL: RETURN
REM Stop-Hinweis ausgeben
GOSUB 42ØØØ: INVERSE
PRINT "STOP MIT JEDER TASTE";
NORMAL : RETURN
REM Cursor zum Ende der Befehlszeile
V = Bl + 2:H = LEN (B$(Bl)) + 6
VTAB V: HTAB H: CALL ZL: RETURN
REM Zeichen-Eingabe ohne Cursor
EZ = PEEK (TD): IF EZ < 128 GOTO 45010
POKE TT,@:EZ$ = CHR$ (EZ — 128)
REM Klein- in Großbuchstaben umwandeln
IF EZ$ < = CHR$ (96) THEN RETURN
EZ$ = CHR$ ( ASC (EZ$) - 32): RETURN
REM Fehler pro Spur ausgeben
Hl = INT (S / ZE):V = S — ZE * Hl +2
H = Hl * 40 / SP + 1: VTAB V: HTAB H + (SP < 4)
PRINT S; TAB( H + 3 + 3 * (SP < 4));LF(S);
RETURN
REM Text-Uberschrift
SP = INT (MS / 20) + 1
ZE = INT (MS / SP) + 1: INVERSE
FOR I = Ø TO SP — 1: HTAB I * 40 / SP + 1
IF SP < 4 THEN PRINT "SPUR FEHLER";
IF SP > = 4 THEN PRINT "SP.FEH.";
NEXT : NORMAL : RETURN
REM Zurück zum Hauptmenü
GOSUB 42000: INVERSE
PRINT "WEITER MIT JEDER TASTE";
NORMAL : GOSUB 45000: TEXT
Peeker 8/85
48040 :
49000
49010
49020
49030
49040
49050
49060
49070
REM Menü ausgeben
HOME : HTAB 5: INVERSE :
NORMAL : PRINT
FOR B = 1 TO MB:B$ =
IF B$ < > " " THEN PRINT B$;" —
PRINT : NEXT
GOSUB 21020: GOSUB 22020: GOTO 31000
PRINT TI$
MID$ (BT$,B,1)
";B$(B);
49080 F
49090 :
50000
50010
50020
50030
50040
50050
50060
50070
50080
50090
REM Programm-Initialisiserung
TI$ = "APPLE II DISKETTENSYSTEM TEST"
SPEED= 100: HOME
HTAB 5: INVERSE : PRINT TI$: NORMAL : PRINT
PRINT TAB( 6);"von Gerhard Berg - 2.3.1985"
VTAB 23: HTAB 1: INVERSE
PRINT "PROGRAMM-DISKETTE AUS LAUFWERK NEHMEN"
HTAB 5: PRINT "UND LEERE DISKETTE EINLEGEN!";
NORMAL : SPEED= 255
VTAB 12: HTAB 13: PRINT "Bitte warten"
50100 :
51000
51010
51020
51030
51040
51050
51060
51070
51080
51090
51100
51110
51120
AE = Ø:FM = 1:MO = 2:KS = 6378:JS = 16 + 16 *
40)
MS = AS - 1: DIM LF(MS),S(7,2)
FOR I = Ø TO 7:S(I,1) = — 1:S(1,2) = -
BEL$ = CHR$ (7):ZL = 64668
FM(1) = 255:FM(2) = 170:FM(3) = 146
CE(1) = 32:CE(3) = 0:CE(5) = 3:CE(7) = 60
TD = 49152:TT = 49168:TG = 49216
LR = HM:SR = HM + 33:UR = HM + 110
JR = HM + 159:PR = HM + 186
AE$ (Ø) = "aus":AE$(1) = "ein"
VZ$(1) = "-":VZ$(2) = " ":VZ$(3) = "+"
BT$ = "CDEØIAPH TFMSLW UJB"
MB = LEN (BT$): DIM B$(MB),FB(MB)
5113Ø :
52000
52010
52020
52030
52040
52050
52060
52070
52080
52090
52100
52110
52120
52130
52140
52150
52160
52500
52510
53000
53010
53020
53030
53040
53050
53060
53070
53080
FOR I = 1 TO MB: READ B$(I): NEXT
DATA "Controller-Steckplatz (Slot) #:"
DATA "Laufwerk (Drive) #:"
DATA "Laufwerk ein-/ausschalten:"
DATA Positionieren auf Spur Ø
DATA 1 Spur nach innen,l Spur nach außen
DATA "Positionieren auf Spur:"
DATA hin und her zwischen Spur
DATA " ",Schreibschutz testen
DATA "FluBwechselabstand:"
DATA "Schreib/Lese Modus: "
DATA Schreiben, Lesen
DATA abwechselnd Schreiben und Lesen
DATA "Ç" ",Umdrehungsdauer messen
DATA "Spur-Justage: Trigger generieren"
DATA Ausgang nach BASIC
FOR I = 1 TO MB: READ FB(I): NEXT
DATA Ø,1,1,2,3,3,2,2,Ø,2,Ø,Ø,4,3,4,Ø,4,3,Ø
52520 :
FOR F = 1 TO 7: READ F$(F): NEXT
DATA KEIN CONTROLLER AUSGEWÄHLT!
DATA LAUFWERK IST NICHT EINGESCHALTET !
DATA KOPFPOSITION IST UNDEFINIERT!
DATA DISKETTE IST SCHREIBGESCHUTZT!
DATA "KEIN DISK-CONTROLLER IN STECKPLATZ "
DATA FEHLER IN PRÜFSUMME DES BOOT-PROM'S!
DATA SPUR-JUSTAGE AUF SPUR
F$(7) = F$(7) + " " + STR$ (JS) + "!"
53090 :
54000
54010
54020 :
55000
55010 PS =
55020
55030
55040
55050
55060
55070
55080
55090
55100
55110
55120
55130
55140
55150
55160
FOR I = 1 TO 3: READ MO$(I): NEXT
DATA dauernd. L Spur,ganze Diskette
REM Assemblerprogramm abspeichern
Ø: FOR I = 36864 TO 37174
READ HV: POKE I,HV:PS = PS + HV: NEXT
DATA 166,25Ø,169,Ø,133,254,133,255
DATA 164,252,189,140,192,16,251,197
DATA 251,240,6,230,254,208,2,230
DATA 255,200,208,238,230,253,208,254
DATA 96,166,250,36,254,165,251,221
DATA 141,192,157,143,192,221,14Ø,192
DATA 8,4Ø,234,234,8,4Ø,2Ø1, 146
DATA 2Ø8,2,23Ø,255,157,141,192,221
DATA 14Ø,192,112,1Ø,234,172,Ø,192
DATA 16,234,189,142,192,96,23Ø,252
DATA 2Ø8,226,23Ø,253,2Ø8,224,44, 254
DATA Ø,16,239,16Ø,3,169,17Ø,157
DATA 141,192,221,14Ø,192,72,1Ø4,72
DATA 1Ø4,136,24Ø,222,2Ø8,239,166,25Ø
Peeker 8/85
(AS >
55170
55180
55190
55200
55210
55220
55230
55240
55250
55260
55270
55280
55290
55300
55310
55320
55330
55340
55350
55360
55370
55380
55390
55400
55410
55500
55510
55520
technik 44
DATA 169,3,133,254,198,254,240,36
DATA 160,0,132,253,189,140,192,16
DATA 251,2ØØ,2Ø8,4,23Ø,253,48,2Ø
DATA 201,255,208,240,189,140,192,16
DATA 251,201,170,240,223,200,208,244
DATA 230,253,16,240,132,252,96,166
DATA 250,189,140,192,16,251,44,0
DATA 192,48,243,201,255,208,242 ,44
DATA 48,192,44,64,192,32,8,145
DATA 240,229,169,0,133,254,165,252
DATA 133,255,56,229,251,240,49,176
DATA 6,73,255,230,252,144,4,105
DATA 254,198,252,197,254,144,2,165
DATA 254,201,12,176,1,168,56,32
DATA 252,144,185,31,145,32,19,145
DATA 165,255,24,32,254,144,185,43
DATA 145,32,19,145,230,254,208,198
DATA 32,8,145,24,165,252,41,3
DATA 42,5,250,170,189,128,192,96
DATA 164,253,169,10,32,19,145,136
DATA 208,248,96,162,18,202,208,253
DATA 234,56,233,1,208,245,96,1
DATA 48,40,36,32,30,29,28,28
DATA 28,28,28,112,44,38,34,31
DATA 30,29,28,28,28,28,28
IF PS < > 45695 GOTO 29200
INt Ø: PR Ø
POKE 35,22:WS =
DISKTEST.START
POKE 1Ø4,64
POKE 16384,Ø
RUN DISKTEST
RETURN
Tien
bear.
Union Dielen =
IC ) Stie hi di
Í
Í
Trick Icks
EI
Ny
wor ann, NS Í
Apple DOS 3.3 —
Tips und Tricks
von U. Stiehl
2. Aufl. 1984, 216 S., mit zahlreichen,
ausführlich kommentierten Programm-
listings, kart., DM 28,—
ISBN 3-7785-1049-5
Dr. Alfred Hüthig Verlag : Postf. 10 28 69 : 6900 Heidelberg 1
17
ProDOS für Anfanger
Teil 3: Geheimnisse von BSAVE und BLOAD
1. FID in Applesoft?
Wenn Sie bislang noch nicht vom BASIC
.SYSTEM überzeugt waren, dann sind Sie
es sicherlich, wenn Sie den nachfolgen-
den Aufsatz gelesen haben, in dem ich
Ihnen die bislang noch nicht publizierten
Eigenschaften der zwei leistungsfåhigsten
BASIC.SYSTEM-Befehle vorstellen
werde.
Sie kennen alle das alte FID (File Devel-
oper) für DOS 3.3, das zum Kopieren von
DOS-Dateien dient. Dieses Maschinen-
programm hat eine Länge von ca. 4800
Bytes. Nun stellen Sie sich einmal vor, Sie
sollten dieses Programm (fast) ausschließ-
lich in Applesoft-Basic (mit höchstens
ganz kurzen Maschinenroutinen) schrei-
ben. Wäre dies möglich? Wie groß wäre
dann das Applesoft-Programm? Und wie
würden Sie vorgehen, damit T-, B- und A-
Dateien beliebiger Länge kopiert werden
können? Sie werden jetzt mit Recht ver-
muten, daß nicht nur ein sehr großes, son-
dern auch ein sehr langsames Applesoft-
Programm entstehen würde.
Nicht so unter dem BASIC.SYSTEM von
ProDOS! Hier ist es tatsächlich möglich,
ein Kopierprogramm für Dateien beliebiger
Art und Größe fast ausschließlich in Ap-
plesoft zu schreiben, das nicht nur sehr
kompakt (weniger als 1800 Bytes), son-
dern auch relativ schnell ist. Dies ist allein
aufgrund des sehr leistungsfähigen
BSAVE/BLOAD-Befehls möglich.
18
2. BSAVE und BLOAD
2.1. Speicherbereich
Der Speicher des Apple lle/llc/ll Plus läßt
sich abstrakt als ein Kontinuum von Spei-
cherstellen definieren, die von $0000-
$FFFF bzw. von 0-65535 durchnumeriert
sind. Dabei bezeichnen wir als Speicher-
bereich einen durchgehenden Abschnitt
des Gesamtspeichers, z.B. den Speicher-
bereich $2000-$3FFF (HGR Seite 1). Die
Anfangsadresse dieses HGR1-Bereiches
ist $2000, die Endadresse $3FFF und die
Länge $2000. Bei der Längenberechnung
beachte man immer, daß das erste Byte
mitgezählt werden muß. Ein einfaches
Beispiel:
Speicherbereich: 768-770
Anfangsadresse: 768
Endadresse: 770
Länge: 3 (768 + 769 + 770)
Die Länge errechnet sich demnach durch
die Formel
Endadresse - Anfangsadresse + 1,
d.h. hier konkret
770-768+1=3
Vertiefend können wir festhalten: Ein
Speicherbereich ist eine kontinuierliche
Folge von Speicherstellen und låBt sich
durch Anfangsadresse, Endadresse und
Långe charakterisieren. Im Grenzfall ist die
Långe = 1; dann fallen Anfangsadresse
und Endadresse zusammen. Jede Spei-
cherstelle enthålt einen Wert (= Byte) im
Bereich 0-255 bzw. $00-$FF. Die einzel-
von Ulrich Stiehl
nen Speicherstellen haben absolute Spei-
cherplatznummern, weil der Gesamtspei-
cher von 0-65535 durchnumeriert ist. Da-
neben gibt es noch relative Speicherplatz-
nummern (= Byte-Offset oder kurz Offset)
im Bereich 0 bis (Långe - 1). Nehmen wir
hierzu an, daß die absoluten Speicherstel-
len 768-770 die Bytes $C1, $C2 und $C3
(entspricht ASCII „A“, „B“ und „C“) ent-
halten. Dann gilt im einzelnen:
$0300 = 768 — $0000 = 0 ($C1=,„A“)
$0301 = 779 - $0001 = 1 ($C2=,B")
$0302 = 770 - $0002 = 2 ($C3=, C“)
Die absolute Speicherstelle 768 ist zu-
gleich die nullte Speicherstelle, wenn die
Zählung mit 0 bei 768 beginnt. Die nullte —
oder bei „normaler“ Zählweise , erste“ —
Speicherstelle (mit dem Offset = Abstand
= 0) enthält „A“, die 1. Speicherstelle
(Offset = 1) enthält „B“ und die 2. und
letzte Speicherstelle (Offset = 2) enthält
„C“. Der Byte-Offset liegt damit stets im
Bereich O bis Länge minus 1.
2.2. Datei
Ziehen wir nunmehr zu den weiteren Erör-
terungen das Bild 1 heran. In der oberen
Bildhälfte wird ein Teil des RAM-Spei-
chers, nämlich der für BSAVE und BLOAD
hauptsächlich in Frage kommende Spei-
cherteil $0800-$95FF dargestellt. Als
Speicherauszug (= auf Diskette zu spei-
chernder Bereich) wählen wir $2000-
$3FFF (HGR1).
Peeker 8/85
Wàhrend der RAM-Bereich als eine konti-
nuierliche Folge von Bytes im internen
Speicher definiert werden kann, läßt sich
die Diskettendatei bzw.. der File als eine
kontinuierliche Folge von Bytes im exter-
nen Speicher (= Datenträger: Diskette,
Festplatte, RAM-Disk usw.) charakterisie-
ren. Daß eine Datei letztlich in 512-Byte-
Blocks unterteilt ist, die physisch auf der
Diskette verstreut sein können und inso-
fern kein Byte-Kontinuum darstellen, ist
zunächst irrelevant.
Die Bytes einer Datei sind absolut nume-
riert vom nullten bis zum letzten Byte,
denn beim BSAVE/BLOAD-Befehl bezieht
sich der Byte-Offset immer auf den Anfang
der Datei. Betrachten wir hierzu die untere
Hälfte von Bild 1. Die dort dargestellte
Datei namens FILE hat eine Länge L von
$6000 Bytes, die von Byte-Offset B =
$0000 = absolut nulltes Byte = Dateian-
fang bis Byte-Offset B = $5FFF = absolut
letztes Byte = Dateiende durchnumeriert
sind. Ähnlich wie der Gesamtspeicher in
Speicherbereiche unterteilt werden kann,
läßt sich auch eine Gesamtdatei in
Dateiabschnitte aufteilen. Im Bild 1 ist der
Bereich Byte-Offset $4000 bis $5FFF ein
solcher Teilabschnitt.
Der sog. EOF (= End of File = ENDFILE
im ProDOS-Directory) hat eine doppelte
Bedeutung: Zum einen versteht man unter
EOF (als Kardinalzahl) die Gesamtzahl al-
ler Bytes einer Datei, also die Dateilänge.
Zum anderen bedeutet EOF (als Ordinal-
zahl) die Nummer desjenigen Bytes, das
dem letzten Byte der Datei folgt bzw. fol-
gen würde. Man beachte also, daß der
Begriff EOF nicht mit dem Begriff Dateien-
de identisch ist.
Nun kommen wir endlich zum BSAVE/
BLOAD-Befehl. Der BSAVE-Befehl über-
trägt einen (beliebigen) Speicherbereich
als Speicherauszug in einen (beliebigen)
Teilbereich einer Datei, während der
BLOAD-Befehl einen (beliebigen) Teilbe-
reich einer Datei in einen (beliebigen)
Speicherbereich einlädt. Im einzelnen gibt
es folgende Parameter:
A = Anfangsadresse des Speicherbe-
reichs
E = Endadresse des Speicherbereichs
L = Länge des Speicherbereichs
B = absoluter Byte-Offset der Datei
T = Dateityp
A- und E-Parameter: Beim BSAVE kann
theoretisch jede Anfangs- und Endadres-
se im Bereich $0000-$BFFF angegeben
Peeker 8/85
RAM
$0800 A$2000
FILE
B$0000 B$2000
E$3FFF
prodos 44
x =
AN
Bild 1: BSAVE BILD, A$2000, L$2000, B$4000
werden. Wegen BLOAD sind praktisch je-
doch nur die Bereiche $0300-$03CF so- _
wie $0800-$95FF zulässig, weil $0000-
$02FF sowie $9600-$BFFF vom BASIC-
‚SYSTEM als belegt markiert werden.
L-Parameter: Die Länge ergibt sich aus (E
- A + 1). Die maximale Länge beträgt
theoretisch $FFFF = 65535. Beim BSAVE
muß man neben A entweder E oder L
angeben, also niemals beide gleichzeitig!
Wenn man beim BLOAD A, E und L weg-
läßt, so gelten als Ersatz die beim letzten
BSAVE benutzen A/E/L-Werte. Wurde ei-
ne Datei gerade mit BLOAD geladen, so
kann sie unmittelbar danach ohne A, E
oder L mit BSAVE zurückgespeichert
werden (vgl. Bug weiter unten).
B-Parameter: Da unter ProDOS eine ein-
zelne Datei 16M groß sein kann, kann der
B-Parameter Werte im Bereich $000000
bis $FFFFFF einnehmen. Wenn B fehlt,
wird automatisch B = 0 angenommen. Mit
B meint man stets den Byte-Offset in der
externen Datei und niemals den o.g. Byte-
Offset im internen Speicherbereich.
Die Werte für A, E, L und B können wahl-
weise als Dezimal- oder Hexadezimalzah-
len (mit vorangestelltem $-Zeichen) ein-
gegeben werden.
T-Parameter: Dieser Parameter für die di-
versen Dateitypen (TBIN, TTXT usw.) ist
nur dann erforderlich, wenn eine Nicht-
BIN-Datei bearbeitet werden soll. Wenn
nämlich der T-Parameter fehlt, wird auto-
matisch eine BIN-Datei (Binärdatei, B-
Datei) angenommen (daher auch die Be-
fehlswörter B-LOAD und B-SAVE). Nicht-
BIN-Dateien müssen jedoch erst mit dem
CREATE-Befehl erzeugt werden, bevor
sie mit BSAVE/BLOAD bearbeitet werden
können.
Beispiele
BSAVE BILD, A$2000, L$2000
speichert die BIN-Datei BILD (ab Byte-
Offset 0, weil der B-Parameter fehlt). Wür-
de eine BIN-Datei namens BILD noch
nicht auf der Diskette existieren, so würde
sie vom BASIC.SYSTEM zunächst auto-
matisch angelegt (= „kreiert“).
BLOAD BILD
lädt mangels weiterer Parameter die ge-
samte BILD-Datei wieder in den alten
Speicherbereich $2000-$3FFF.
BLOAD BILD, A$4000
lädt die BILD-Datei nunmehr
HGR2-Bereich ab $4000.
CREATE TEXT, TTXT
BSAVE TEXT, TTXT, A768, E770
legt zunächst eine TXT-Datei namens
TEXT an und speichert dann darauf, wenn
wir das obige Beispiel aufgreifen, die
Buchstaben „ABC“ ab Byte-Offset 0 ab.
BSAVE TEXT, TTXT, B3, A768, L3
hängt „ABC“ an das Ende der TXT-Datei
an, die nunmehr den Inhalt „ABCABC“
hat.
BLOAD TEXT, TTXT, A780, B3
lädt die drei letzten Buchstaben „ABC“
der TXT-Datei in den Speicherbereich
780-782.
BLOAD PRODOS, A$2000, TSYS
lädt die SYS-Datei PRODOS in den Spei-
cher ab $2000. Da der B-Parameter fehlt,
wird mit dem nullten Byte der Datei begon-
nen. Und da weder der E- noch der L-
Parameter spezifiziert wurde, wird die ge-
samte Datei eingelesen.
in den
Der BILDTEST (s. Listing), der mit dem
Bild 1 korrespondiert, packt 3 HGR1-Bil-
der in eine einzige BIN-Datei. Bild 1 veran-
schaulicht den BSAVE-Vorgang für das
dritte HGR1-Bild.
19
2.3. BSAVE-Bug 1.0
Die oben geschilderten BSAVE-BLOAD-
Verfahren gelten nur ab Version 1.1 des
BASIC.SYSTEMSs, das in der Regel in Ver-
bindung mit PRODOS 1.1.1 benutzt wird.
Im „CALL A.P.P.L.E" (Mårz-Heft) wurde
irrigerweise vermutet, daß nur beim zwei-
ten BSAVE ein Byte-Offset über das alte
EOF hinaus möglich sei. Dies ist jedoch
falsch. Genauer gesagt konnte beim „ver-
bugten“ BASIC.SYSTEM 1.0 ein BSAVE
über den alten EOF hinaus nur für den Fall
B<=L
realisiert werden. Beispiele:
BSAVE XXX, A5000, BO, L2
ENDFILE danach 2
BSAVE XXX, A5000, B1, L2
ENDFILE danach 3
BSAVE XXX, A5000, B2, L2
ENDFILE danach 4
BSAVE XXX, A5000, B3, L2
ENDFILE danach wieder 4,
weil hier B > L (Bug)!
Ferner unterscheidet sich der neue 1.1-
BSAVE vom alten 1.0-BSAVE darin, daß
der 1.1-BSAVE erstens im Falle von
L < momentanes EOF
die Altdatei nicht kürzt bzw. schrumpfen
läßt und daß zweitens über den momenta-
nen EOF hinaus BSAVES mit
B> EOF
möglich sind, wodurch „Loch“-Dateien
entstehen können. Beispiele:
BSAVE XXX, A5000, L1, B$FFFFFF
erzeugt unter dem BASIC.SYSTEM 1.1
eine BIN-Datei mit einem ENDFILE von
16777215 Bytes (= 16M - 1). Unter Ver-
sion 1.0 würde hier eine Fehlermeldung
produziert. Für Interessierte: Diese Datei
belegt 5 Blocks, und zwar 2 (!)
Datenblocks sowie 3 Index-Blocks.
BSAVE YYY, A$2000, L$4000
BSAVE YYY, A$2000, L$2000
würde unter Version 1.0 nach dem zweiten
BSAVE die Dateilänge wieder auf L$2000
schrumpfen lassen. Unter Version 1.1
würde weiterhin eine Länge von $4000
ausgewiesen.
3. KOPY und BATCHKOPY
Die nachfolgenden zwei Dateikopierpro-
gramme demonstrieren die ungewöhnli-
che Leistungsfähigkeit des BASIC.SY-
STEMSs 1.1.
3.1. KOPY
KOPY wird mit RUN KOPY gestartet. Es
schaltet zunächst die 80-Zeichenkarte ein
— dies kann man streichen — und meldet
20
sich dann mit einem spartanischen Menü
„BEFEHL (K/C/E):". Man hat nun 4 Op-
tionen:
1. E bedeutet E(nde) des Programms.
2. C bedeutet C(ATALOG) in bezug auf
das momentane Directory-Präfix.
3. DIREKTBEFEHL führt einen beliebigen
Direktbefehl aus, z.B.
CAT/RAM
PREFIX/USERS.DISK
DELETE XXX
LOCK YYY
UNLOCK ZZZ
USW.
4. K... ist der eigentliche K(OPY)- oder
Kopierbefehl. Die Syntax lautet
K/VOLUMET1/FILE1,/VOLUME2/FILE2
d.h. „K“ + „vollständiger Pfadname der
Ausgangsdatei" + ,," + „vollständiger
Pfadname der Zieldatei“. Die eigentlichen
File-Namen können identisch oder auch
verschieden sein, so daß mit dem Kopier-
vorgang gleichzeitig eine Datei umbenannt
werden kann. Nehmen wir an, daß sich die
Datei „PRODOS“ auf der Diskette mit
dem Volume-Namen „USERS.DISK“ be-
findet und auf das Subdirectory „SUB-
DIR“ der RAM-Disk mit dem Volume-Na-
men „RAM“ kopiert werden soll. Dann
lautet der Kopierbefehl
K/USERS.DISK/PRODOS,/RAM/SUBDIR/PRODOS
Man beachte, daß innerhalb des Befehls
keine Leertasten zulässig sind und daß die
Volume- bzw. Subdirectory-Namen durch
Schrägstriche abgegrenzt werden
müssen.
Die Anwendung des Programms KOPY
wird dann empfohlen, wenn einzelne
Dateien kopiert werden sollen.
3.2. BATCHKOPY
Die Optionen 1-3 sind bei BATCHKOPY
dieselben wie bei KOPY. BATCHKOPY
empfiehlt sich anstelle von KOPY dann,
wenn eine Vielzahl von Dateien kopiert
werden soll. Zu diesem Zweck gibt man
beim Kopierbefehl zunächst ein nacktes
„K“ ein, worauf man die Ausgangs- und
Zielpräfixe festlegen kann, z.B.
VON PREFIX/ USERS.DISK
NACH PREFIX/ RAM
Die Schrägstriche vor dem ersten und
nach dem letzten Directory-Namen wer-
den automatisch ergänzt. Danach wird das
gesamte Ausgangsdirectory Name für Na-
me angezeigt, und man braucht nunmehr
nur noch durch „J(a)“ oder „N(ein)“ be-
stimmten, welche der einzelnen Dateien
kopiert werden sollen.
BATCHKOPY ist fast genauso schnell
bzw. langsam wie der FILER der Firma
Apple, der allerdings 15mal so umfang-
reich ist! Wer ein noch schnelleres Kopier-
programm benötigt, der verwende das in
„ProDOS für Aufsteiger, Band 2“ abge-
druckte Kopierprogramm PROFID, das als
reines Maschinenprogramm noch kürzer
und zugleich ca. 40% schneller ist. In der
Kürze liegt die Würze!
Die Programme KOPY und BATCHKOPY
kommen nicht ganz ohne Maschinenrouti-
nen aus. Insbesondere der sog. Get- und
Set-File-Info-MLI-Befehl mußte in Assem-
bler geschrieben werden. Die entschei-
dende Stelle in den beiden Applesoft-Pro-
grammen ist jeweils die Zeile 72, die den
schubweisen BLOAD- und BSAVE-Befehl
ausführt. Dies wäre unter DOS 3.3 un-
denkbar gewesen. Denken Sie jedoch
daran, daß KOPY und BATCHKOPY nur
unter dem BASIC.SYSTEM 1.1 funktionie-
ren. (Das o.g. PROFID funktioniert unter
allen ProDOS-Versionen.)
Wer das Applesoft-Programm näher be-
trachtet, wird übrigens feststellen, daß ich
eine Schwäche für ON-GOTO-Konstruk-
tionen habe, die an die Stelle des fehlen-
den IF-THEN-ELSE-Befehls treten.
4. BSAVE-Bug 1.1.
Vollziehen Sie folgenden Test:
. POKE 5000, 1: POKE 10000, 2
. BSAVE XXX, A5000, L1
. BSAVE XXX, A10000, L 1
. POKE 10000, 0
. BLOAD XXX
. PRINT PEEK (5000)
. PRINT PEEK (10000)
. CATALOG
Sind Sie überrascht?
Der 1.1-BSAVE-Befehl ändert die beim er-
sten BSAVE registrierte Anfangsadresse
später nie mehr. Deshalb muß man stets
den A-Parameter hinzufügen, sonst kön-
nen unheilvolle Dinge passieren. Es wurde
also bei 1.1 ein alter Bug beseitigt und ein
neuer eingebaut. Dieser Bug kommt bei
KOPY und BATCH KOPY nicht zum Tra-
gen.
OO — O) O1 +. O [NS —
I
Peeker 8/85
Visible
Computer
Ein Simulationsprogramm, das Sie in das Innere des 6502 Mi-
kroprozessors führt. Sie sehen auf dem Bildschirm, wie die ein-
zelnen Instruktionen in Zeitlupe ausgeführt werden, wie sich die
Register und die Flags veråndern. Ein unverzichtbares Hilfsmit-
tel beim Erlernen der Assembler-Programmierung, danach ein
wertvolles Werkzeug beim Testen Ihrer eigenen Programme.
Komplett mit einem 6502 Editor/-Assembler, deutschem Hand-
buch (150 Seiten) und über 30 Beispielprogrammen.
Für Apple II, IIplus, //e und //c.
sensur
SETTIST
ISBN 3-89058-019-X DM 129,--
EN a f
EE p = š
EE SE ER oo In allen Buchhandlun-
E pe SE 38
E ee EE E HEG
nn Í S gen und Computershops
oder direkt vom Verlag:
rd rs Lepila wen ie s. a E
EE SE
Wu Zug Cie Sg ne. a 8
HATE STE r 16-23 Ze Ze
eeh w Teie Ac. SANE `;
Fer Tira Fie Aall
SS Pandabooks
ER
RR
Æ R
-o er sS Bismarckstr. 67
le Sec 1000 Berlin 12
Ss) (030) 342 88 00
nschrift
V-Scheck liegt bei (spesenfreie Lieferung)
per Nachnahme (zzgl. DM 3,-- Versandspesen)
OO Ë
— Stck. Visible Computer DM 129,--
Peeker 8/85 21
KOPY
(Warnung: KOPY funktioniert nur mit BASIC.SYSTEM 1.1!)
10
12
PRINT CHR$ (4);"PR#3": PRINT : IF PEEK (116) < 128 THEN
PRINT "KEIN PUFFER!": END
DATA 32,Ø,191,196,55,3,176,38,169,1Ø,141,73,3,32,%,
191,196,73,3,176,25,162,3,189,58,3,157,76,3,2Ø2,16,247,
169,7,141,73,3,32,Ø,191,195,73,3,176,1,96,32,218,253,32
DATA 58,255,76,208,3,10,0,2,0.0,0,0,0,0,0,0,0,0,0,0,0,0,
Ø,Øø,128,2: FOR X = 768 TO 843: READ Y: POKE X,Y: NEXT:
REM GETINFO
DATA 32,6,227,32,19Ø,222,32,227,223,32,1Ø8,221,
133, 133,132,134,32,44,213,2ØØ,32,233,227,76,154,218:
FOR X = 900 TO 925: READ Y: POKE X,Y: NEXT : REM INALL
ONERR GOTO 24
HOME : INVERSE : PRINT "x**x* KOPY x":
PRINT "* U.STIEHL *": NORMAL : GOTO 26
PRINT "SYNTAX?": GOTO 26
ON E = 1 AND PEEK (222) = 19 GOTO 62:
PRINT "FEHLER "; PEEK (222);"!"
CLEAR : PRINT : PRINT "BEFEHL (K/C/E):";: CALL 9ØØ,B$:
ON B$ = "" GOTO 26: ON LEFT$ (B$,1) = "K" GOTO 34:
IF B$ = "E" THEN POKE 216,Ø: END
IF B$ = "C" THEN PRINT CHR$ (4);"CATALOG": GOTO 26
PRINT CHR$ (4);B$: GOTO 26
REM SYNTAX:K/V1/N1,/V2/N2
B = LEN (B$): IF B < 1Ø THEN 22
FOR X = B TO 2 STEP - 1: IF MID$ (B$,X,1) = ","
THEN N2$ = MID$ (B$,X + 1,B - X):
N1$ = MID$ (B$,2,X = 2): X = 2
NEXT : ON N1$ = "" OR N1$ = N2$ GOTO 22:N1l = LEN (N1$):
N2 = LEN (N2$): ON Nl < 4 OR N2 < 4 GOTO 22:
ON LEFT$ (N1$,1) < > "/" OR LEFT$ (N2$,1) < > "/" GOTO 22
FOR X = N1 TO 2 STEP — 1: IF MID$ (N1$,X,1) = "/"
THEN P1$ = LEFT$ (N1$,X):Fl = N1 - X:
F1$ = RIGHT$ (N1$,F1): X = 2
NEXT : IF P1$ = "" THEN 22
FOR X = N2 TO 2 STEP — 1: IF MID$ (N2$,X,1) = "/"
THEN P2$ = LEFT$ (N2$,X):X = 2
NEXT : IF P2$ = "" THEN 22
REM DIR-READ
B$ = CHR$ (4) + "VERIFY": PRINT B$;P2$: PRINT B$;P1$:
PRINT B$;N1$: PRINT CHR$ (4);"OPEN";P1$;",TDIR":
PRINT CHR$ (4);"READ";P1$: INPUT B$: INPUT B$: INPUT B$
INPUT B$: IF MID$ (B$,2,F1) = F1$ AND MID$ (B$,Fl + 2,1)
=" " THEN PRINT CHR$ (4);"CLOSE": GOTO 58
ON B$ < > "" GOTO 52: PRINT CHR$ (4);"CLOSE":
PRINT "NAME?": GOTO 22
REM KOPIEREN
LL = VAL ( MID$ (B$,65,7)):T$ = ",T" + MID$ (B$,18,3):
B = Ø:A = 6144:L = 24576: REM $18ØØ+$6ØØØ=$78ØØ
E = 1: PRINT CHR$ (4); "CREATE";N2$;T$: GOTO 64:
REM E=ERROR
E = Ø: PRINT CHR$ (4); "DELETE" ; N2$:
PRINT CHR$ (4); "CREATE"; N2$; T$
IF LL < L THEN L = LL: ON L > Ø GOTO 70: RUN 26
GOSUB 72:B = B + L: ON B + L < LL GOTO 66:L = LL — B:
IF L = @ THEN RUN 26: REM LOOP
REM SETINFO
GOSUB 72: POKE 512,N1: FOR X = 1 TO N1:
POKE 512 + X, ASC ( MID$ (N1$,X,1)): NEXT:
POKE 640,N2: FOR X = 1 TO N2: POKE 640 + X,
ASC ( MID$ (N2$,X,1)): NEXT : CALL 768: RUN 26
PRINT CHR$ (4);"BLOAD";N1$;T$;",A";A;",B";B;",L";L:
PRINT CHR$ (4) ;"BSAVE" ;N2$;T$;",A";A;",B";B;",L";L:
RETURN
BATCHKOPY
(Warnung: BATCHKOPY funktioniert nur mit BASIC.SYSTEM 1.1!)
10
12
PRINT CHR$ (4);"PR#3": PRINT : IF PEEK (116) < 128 THEN
PRINT "KEIN PUFFER!": END
DATA 32,Ø,191,196,55,3,176,38,169,1Ø,141,73,3,32,
Ø,191,196,73,3,176,25,162,3,189,58,3,157,76,3,2Ø2,16,247,
169,7,141,73,3,32,Ø,191,195,73,3,176,1,96,32,218, 253,32
DATA 58,255,76,208,3,10,0,2,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,128,2: FOR X = 768 TO 843:
READ Y: POKE X,Y: NEXT : REM GETINFO
DATA 32,6,227,32,19Ø,222,32,227,223,32,1Ø8,221,133,
133,132,134,32,44,213,200,32,233,227,76,154,218:
FOR X = 900 TO 925: READ Y: POKE X,Y: NEXT : REM INALL
ONERR GOTO 24
HOME : INVERSE : PRINT "*BATCH-KOPYx*":
PRINT na U.STIEHL *": NORMAL : GOTO 26
PRINT "SYNTAX?": GOTO 26
ON E = 1 AND PEEK (222) = 19 GOTO 6Ø: PRINT :
PRINT "FEHLER "; PEEK (222);"!"
CLEAR : PRINT : PRINT "BEFEHL (K/C/E):";: CALL 9ØØ,B$:
ON B$ = "" GOTO 26: ON B$ = "K" GOTO 34:
IF B$ = "E" THEN POKE 216,Ø: END
IF B$ = "C" THEN PRINT CHR$ (4);"CATALOG": GOTO 26
PRINT CHR$ (4);B$: GOTO 26
2 REM PREFIX-WAHL
PRINT : PRINT "VON PREFIX/";: CALL 9ØØ,P1$:
ON P1$ = "" GOTO 26:P1$ = "/" + P1$ + "/":
PRINT "NACH PREFIX/";: CALL 9ØØ,P2$:
ON P2$ = "" GOTO 26:P2$ = "/" + P2$ + "/":
PRINT CHR$ (4); "VERIFY";P2$: PRINT CHR$ (4);"VERIFY";P1$
REM DIRECTORY-READ
DIM C$(1ØØ):C = Ø: PRINT CHR$ (4);"OPEN";P1$;",TDIR":
PRINT CHR$ (4); "READ";P1$: INPUT B$: INPUT B$: INPUT B$
C = C + 1: INPUT C$(C): ON C$(C) < > "" GOTO 4Ø:C = C - 1:
PRINT CHR$ (4);"CLOSE": ON C = Ø GOTO 26:
PRINT CHR$ (4);"FRE":CC = Ø
REM DATEI-WAHL-SCHLEIFE
PRINT :CC = CC + 1: ON CC > C GOTO 26:
PRINT MID$ (C$(CC),2,15);" J/N ";
GET B$: ON B$ < > "J" AND B$ < > "j" AND B$ < > "N"
AND B$ < > "n" GOTO 46: PRINT B$;" ";:
ON B$ = "N" OR B$ = "n" GOTO 44:
B$ = C$(CC):N$ = MID$ (B$,2,15)
IF RIGHT$ (N$,1) = " " THEN
N$ = LEFT$ (N$, LEN (N$) - 1): GOTO 48
N1$ = P1$ + N$:Nl = LEN (N1$):N2$ = P2$ + N$:
N2 = LEN (N2$): PRINT N1$;" -> ";N2$;
REM DATEI-KOPIE
LL = VAL ( MID$ (B$,65,7)):T$ = ",T" + MID$ (B$,18,3):
IF T$ mn. TDIR" THEN PRINT " DIRECTORY!";: GOTO 44
B = Ø:A = 8192:L = 20480: REM $2000+$5000=$7000
E = 1: PRINT CHR$ (4);"CREATE";N2$;T$: GOTO 62:
REM E=ERROR
E = Ø: PRINT CHR$ (4); "DELETE" ;N2$:
PRINT CHR$ (4); "CREATE" ;N2$;T$
IF LL < L THEN L = LL: ON L > Ø GOTO 7Ø: GOTO 44
REM SCHUBKOPIE-SCHLEIFE
GOSUB 72:B = B + L: ON B + L < LL GOTO 66:L = LL — B:
IF L = Ø THEN 44
REM SETINFO
GOSUB 72: POKE 512,Nl: FOR X = 1 TO N1:
POKE 512 + X, ASC ( MID$ (N1$,X,1)): NEXT:
POKE 640,N2: FOR X = 1 TO N2:
POKE 640 + X, ASC ( MID$ (N2$,X,1)): NEXT:
CALL 768: GOTO 44
PRINT CHR$ (4);"BLOAD";N1$;T$;",A";A;", B";B;",L";L:
PRINT CHR$ (4);"BSAVE";N2$;T$;",A";A;",B";B;",L";L:
RETURN
GETSETINFO
(Als DATA-Statements in KOPY und BATCHKOPY enthalten.
GETSETINFO funktioniert bei allen ProDOS-Versionen!)
ORG $0300
Get/Set File-Info US/16.05.85
Altname laden, dessen Parameter
(Access/Filetype/Auxtype)
zwischenspeichern, dann Neuname
laden und mit geànderten
Parametern zurückspeichern.
(O O JO QI Ë Q N ta
=
=
* * ÅÅÅ
DOSWARM EQU $Ø3DØ
MLI EQU $BFØØ
BELL EQU $FF3A
PRBYTE EQU $FDDA
*
GETINFOl JSR MLI ;Altname
HEX C4
DA CNTA
BCS ERROR
*
GETINFO2 LDA +$ØA : GET
STA CNTB
JSR MLI ;Neuname
HEX C4
DA CNTB
BCS ERROR
Peeker 8/85
prodos 44
0315: A2 03 29 LDX #3 BILDTEST
0317: BD 3A Ø3 30 COPY LDA ACCESSA,X ;Alt nach
Ø31A: 9D 4C Ø3 31 STA ACCESSB,X ;Neu kopieren (Warnung: BILDTEST funktioniert nur mit BASIC.SYSTEM 1.211
Ø31D: CA 32 DEX
031E: lØ F7 33 BPL COPY 1ØØ VTAB 24: PRINT : PRINT "BILDTEST": HCOLOR= 7
34 x 110 N = 2
0320: A9 97 35 SETINFO2 LDA +$Ø7 ; SET 120 FOR X = @ TO N
0322: 8D 49 Ø3 36 STA CNTB 130 HGR : HPLOT 1ØØ,X * 2Ø TO 200,X * 20:
0325: 2Ø ØØ BF 37 JSR MLI ; Neuname REM Waagrechter Strich, unterschiedlich tief
Ø328: C3 38 HEX C3 140 PRINT CHR$ (4); "BSAVE BILD, A8192, L8192, B";
0329: 49 Ø3 39 DA CNTB X * 8192
Ø32B: BØ Øl 40 BCS ERROR 150 PRINT X + 1;" ";: NEXT : PRINT
032D: 69 41 RTS 160 FOR X = Ø TO N
4 x* 170 HGR : PRINT CHR$ (4);"BLOAD BILD, A8192, L8192, B";
Ø32E: 2Ø DA FD 43 ERROR JSR PRBYTE X * 8192
0331: 20 3A FF 44 JSR BELL 180 PRINT X + 1;" ";: NEXT
Ø334: AC DØ Ø3 45 JMP DOSWARM
46 *
Ø337: ØA 47 CNTA HEX ØA ;Nur GET GET FILE INFO ($C4)
KR på p3 = _. pe ZER RR Parameter-Count = $0A — 1 Byte
Ø33A: ØØ 49 ACCESSA HEX ØØ Name-Pointer — LL HH — 2 Bytes
033B: og 50 FILETYPA HEX ØØ Access — 1 Byte, gepokt
033C: ØØ og 51 AUXTYPEA HEX 0000 File-Type — 1 Byte; gepokt
Ø33E: ØØ 52 STORAGEA HEX ØØ Auxiliary Type — 2 Bytes; gepokt
Ø33F: og ØP 53 BLOCKSA HEX 0000 pe Pë Sg We? nn V
i OCKS used — wen ytes; gepo
eh PP PØ 54 MDATEA HEX 0000 Modification-Date — 2 Bytes; gepokt
3: ØØ Op 55 MTIMEA HEX ØØØØ Modification-Time — 2 Bytes; gepokt
0345: ØØ ØØ 56 CDATEA HEX 0000 Creation-Date — 2 Bytes; gepokt
0347: ØØ QQ 57 CTIMEA HEX ØØØØ Creation-Time — 2 Bytes; gepokt
58 *
0349: ØØ 59 CNTB HEX ØØ ;GET/SET SET FILE INFO ($C3)
en 80 92 69 NAMEB DA $0280 ;640 Parameter-Count = $07 — 1 Byte
C: 99 61 ACCESSB HEX ØØ Name-Pointer — LL HH — 2 Bytes
Ø34D: ØØ 62 ` FILETYPB HEX ØØ Access — 1 Byte
Ø34E: ØØ QQ 63 AUXTYPEB HEX ØØØØ File-Type — 1 Byte
0350: ØØ 64 STORAGEB HEX ØØ Auxiliary Type —2 Bytes
Ø351: ØØ ØP 65 BLOCKSB HEX 0000 erre ar, N
. i ion- =
0353: ØD ØØ 66 MDATEB HEX ØØØØ Modi fication-Time — 2 Bytes
0355: ØØ og 67 MTIMEB HEX ØØØØ
0357: ØØ og 68 CDATEB HEX ØØØØ
0359: og og 69 CTIMEB HEX 0000
91 Bytes
APPLE -- DISKETTEN LAUFWERKE
Original Disk II m. Controller + DOS 3.3 + Hdbuch
Original Disk II (2. Laufwerk}
Duo-Disk Station Slimline, 2 x 143KB Chinon
Siemens Disk-Laufw., 143KB, m. Kabel + Gehäuse
Abor-Disk-Laufw., Slimline, 143KB, m. Kab. + Geh.
Chinon Slimline, 143KB, Superleise, m. Kab. 3 Gen.
Teac 55F, 1 MB unf. Kapazität, Shugartbus
Teac 55F, kpl..in Gehäuse, 40/80 Track, 1MByte
anschlußfertig, mit Umschaltung 40/80 + Kabel
Zweitlaufwerk für Apple II C, 143 KB, mit Kabel
APPLE - INTERFACES + MAINBOARDS
Disk Controller f. 2 Original o. kompat. Drives
Super-Controller f. 2x Teac 55F, mit Software
80 Zeich-Karte mit 64K RAM + Softsw. f. Ile
80 Zeich-Karte II, m. Softswitch, 2 Zeichensätze "DM
16K RAM Erweiterung für Il und kompatible "DM
Z 80A Interface Kate für CPM 2.2 *DM
Z 80B Interface Karte für CPM 3.0, m. 64K RAM DM
Printer-Grafik Interface, Epson kompatible *DM
Centronic-Paralell Text-Interface Karte *DM
Printer-Grafik Interface, NEC/ITOH kompatibel *DM
Anschluß Kabel f. Paralell + Grafik Interface DM
Buffer Grafik-Interface, benutzbar für Drucker
Epson/Nec/Itoh/Okidata u. andere m. 32K Buffer DM
Buffer Interface wie vor aber mit 64K Buffer **DM
AnschluB Kabel f. Buffer Interface Karte DM
232C Serielle Interface Karte *DM
Super Serielle Interface Karte, Fullduplex “DM
Sprach (Speech) Karte f. Sprachwiedergabe *DM
6522 Paralell Interface Karte *DM
Clock Karte (Datum/Uhrzeit) Ein/Ausgabe *DM
Eprom Writer Karte (2716 - 2764) *DM
IEEE-488 Interface Karte *DM
Logo-Karte mit Diskette und Handbuch DM
Musik Karte m. Diskette und Handbuch *DM
PAL Color Interface Karte (UHF + Video) *DM
RGB Interface Karte (f. Apple II + I+) *DM
Wild Karte (kopiert über RAM-Bereich) *DM
128K RAM Erweiterungs Karte m. Patchsoftware **DM
256K RAM Erweiterungs Karte m. Patchsoftware **DM
6809 Prozessor Exell-9 Interfacekarte + DM
IC-Tester Interface Karte (RAMS/TTL 54/74) DM
Hauptplatine 48K, o. Firmware Eproms, 8 Slots DM
Hauptplatine 64K, wie vor DM
APPLE -- LEERPLATINEN =-
Leerplatinen der obigen Interface Karten sind alle in vergoldet,
m. Bestück-Aufdruck + Best.-Plan lieferbar.
Leerpiatinen mit der Kennzeichnung **DM
Leerplatinen mit der Kennzeichnung "DM
Leerplatinen mit der Kennzeichnung + DM
Experimentier Platine, für Apple Slot EX300 DM
Leerplatine Motherboard, 48K, mit Best.-Aufdruck DM
Leerplatine Motherboard, 64K, mit 6502 + Z80 DM
Peeker 8/85
398,—
598,—
398,—
448,—
448,—
498,—
APPLE
39,—
24,50
3 —
29,90
66,—
99,—
100% Apple-kompatibel 6 Mon. Garantie
bei Verwendung des
Apple-Betriebssystems.
APPLE -TASTATUREN+LEERGEHÄUSE+NETZTEILE- APPLE
Standard Einbau-Tastatur, ASCII, freibel. 9 Tasten,
Doppelbelg. aller Tasten, GroB+Kleinschr. Nr. N26 DM
Tastatur wie vor, jedoch mit 15er Block Nr.N67 DM
Tastatur Nr. N67, mit sep. Gehåuse, kpl. m. Kabel DM
Seperate Tastatur IBM-Look, anschluBfertig mit
Kabel, Dopp. belegt.Tasten, frei prog. Funkt.Tasten DM 298,—
Seperate Tastatur, Eprom progr.-bar, Cursorblock
Tastenfeld mit 24 Funktionen, Deutsch o. ASCII DM 398,—
Leergehåuse Standard, passend f. Tastatur Nr.N26 DM 98—
dto. wie vor, jedoch passend für 15er Tast. N67 DM 119,—
Leergehåuse wie Mewa 9000, fur Einbau von zwei
Slimline-Laufwerken + TastaturanschluB, Plastic DM
Leergehäuse wie vor, jedoch in Metall-Ausführung DM
Leergehäuse IBM-Look, f. 2 Laufw. Standard 5" DM
Leergehäuse für 1 Slimline Laufwerk, Metall DM
Leergehäuse f. Duo-Disk = 2x Slimline-Laufwerke DM
Leergehäuse f. Duo-Disk = 2x Standard-Laufw. DM
Leergehäuse f. Duo-Disk = 2x Slimline + Netzteil DM
Schaltnetzteile für APPLE u. kompatible Rechner
+5V/3,5A -5V/0,5A +12V/2A -12V/0,5A N73 DM 99,80
+5V/5 A -5V/0,5A +12V/2,5A -12V/0,5a N74 DM 119,80
+5V/7,5A -5V/0,5A +12V/2A -12V/0,5A N75 DM 149,50
.... DISKETTEN + DISKETTEN-BOXEN — “mmm
Profi Disk.Box, m. SchloB, Klars.-Deckel, 100 Disks DM 49,—
Disk Box mit Klars.-Deckel, ca. 70 Disketten 5” DM 26—
Hartbox für 10 Disketten, mit Klappdeckel DM 6,90
Disketten, mit Verstårkungsring, 3 Jahre Garantie
ABX 100 = SS/SD 10 Stck. a. 3,98 50 Stck. a. 3,88 500 Stck. a. 3,59
ABX 200 = SS/DS 10 Stck. a 4,08 50 Stck. a 3,98 500 Stck. a 3,69
ABX 400 = DS/DD 10 Stck. a. 4,98 50 Stck. a. 4,88 500 Stck. a. 4,59
139,—
249,—
159,—
198,—
198,—
19,90
98,—
109,—
179,—
COMPUTER CENTER CONEX
5650 SOLINGEN 11 - Postfach 110206-7 T
Telefon (02 12) 75449
178,—.
Reparaturservice
APPLE -- ORIGINAL + KOMPATIBLE - COMPUTER -- APPLE
APPLE lle, 64KRAM, Ascii-Tastat. + UHF-Modul. DM 2198, —
APPLE lle, Einstiegspaket = Computer 64KRAM,
+ Philips-Monitor 18 Mhz grun + Siemens F122 -
Laufwerk 143K m. Controller + Lerndiskette
APPLE II C, 128 KRAM, ASCII Tastatur
APPLE II C, wie vor, jedoch deutsche Tastatur
MACINTOSH System komplett m. Mouse + Tastatur
+ Macwrite/Macpaint, Systemguide-Diskette
MEWA-48K, Apple kompat., Netzt. SAmp, Tastatur
mit Dopp-Belegung + 10 frei Prog.Tasten, mit
UHF-Mod, ohne Firmware Eproms.
MEWA-64K. wie vor jedoch mit 15er Block
MEWA 9000er Serie, mit seper.Tastat. DIN o. ASCII
m. dopp. belegt. Funkt-Tasten, Cursorbl. + 15er
Block Netzt. 5 Amp., Gehäuse für 2x Slimline-
Laufwerke UHF-Modulator, o. Firmw.-Proms
(12KROM), 48K RAM
MEWA 9000-64-C, wie vor jedoch 64K RAM
MEWA 9000-64-C Einstiegspaket, wie vor, jedoch
mit 1 Disk Drive eingeb. + Disk-Contr. + Monitor,
grün DM 1898, —
IBM-Look Gehäuse für MEWA 9000 Serie Aufpreis DM 39,—
"IT am MATRIX- UND TYPENRAD - DRUCKER — ********
CP-80 Matrix Drucker, Epson kompat., vollgrafikf. DM 739,—
CP-80 X mit eingeb. Interface tür VC 64 f. Sim. B. DM 899,—
SPEEDY 100-80, Epson kompat., 100 Z/s, v.-grafikf. DM 759,—
GEMINI 10X, Neu mit Textsp., 100 Z/s., 9x9 Mat. DM 998,—
GEMINI 15X, wie 10X, jedoch bis 375 mm Papierbr. DM 1198,—
ITOH 8510 B, Die Zuverlåssigkeit in Person DM 1475,—
JUKI 6100, Typenraddr., 22 Z/s, TA-Typenräder DM 1495,—
DM 3098,—
DM 2795,—
DM 2998,—
DM 5995,—
DM 698,—
DM 728,—
DM 998,—
DM 1098,—
Computer-Artikel Nachnahmeversand unfrei, Zwischenverkauf vorbehalten.
Angebote freibleibend unter Anerkennung unserer Lieferbedingungen. Technische Änderungen vorbehalten. "Apple ist eingetragenes
Warenzeichen der Fa. Apple-Computer Inc., Kalifornien. Ware mit Rückgaberecht, besonders gekennzeichnet, muß frei zurückgeschickt
werden. "IBM" ist eingetragenes Warenzeichen der Firma IBM GmbH Ffm.
ERICH-WILLI MEYER
6343 FROHNHAUSEN - Postfach 70 11
Telefon (027 71) 350 71
......
IBM *** KOMPATIBEL IBM *** KOMPATIBEL `
Alle Teile unterliegen einer sorgfältigen Endkontrolle und wir
übernehmen daher volle Garantie für die Funktionsfähigkeit,
sowohl für die gelieferten Leerplatinen, als auch für die fertig
bestückten Boards und Interface Karten, die fast ohne Ausnahme
mit gesockelten IC's geliefert werden.
IBM -- Kompatible Interface Karten und Mainboards -- IBM
Disk Controller Karte für 2 Disk-Drives *KL-2020 DM 228,-
Color Video Board, *KL-2050 DM ab 398,-
Monochrome Video boards *KL-2060 DM ab 328,-
RS 232 Drucker Interface Karte KL-2074 DM
Centronics Paralell Interface Karte KL-2072 DM
Multifunktion Karte, RAM-Bereich, RS232,
Paralell, Clock, mit O K bestückt
dto. wie vor, jedoch mit 128K bestückt
dto. wie vor, jedoch mit 256K bestückt
512K RAM Karte, mit O K bestückt KL-2095 DM
dto. wie vor, mit 128K bestückt KL-2096 DM
Multi 1/O Interface Board, RS232, Disk-Controller,
Centronics, Clock, Joystick
und Lightpen-Port
Eprom Writer Karte (bis 128K benutzbar)
Hardisk/Winchester Host-Adapter Karte
Mainboard XT Version, 8 Slots 0 bestückt
mit 1 Boot-Eprom, 6 Eprom-Plätze frei
dto. wie vor, jedoch mit 128K bestückt *KL-1005 DM
dto. wie vor, jedoch mit 256K bestückt *KL-1006 DM
Mainboard PC Version, 8 Slots, 64K bestückt
mit 1 Boot-Eprom, 6 Eprom-Plåtze frei *KL-1010 DM
dto. wie vor, jedoch mit 128K bestückt *KL-1011 DM
dto. wie vor, jedoch mit 256K bestückt “KL-1012 DM 1296,—
Bei den mit * gekennzeichneten Artikeln gehört zum Lieferumfang
ein Manual, und z. T. ein Schaltbild.
Preislisten + Prospekte kostenlos gegen frankierten Rückumschlag.
IBM -- Kompatible Leerplatinen + Boards - IBM
Disk Controller f. 2 Drives DM 58—
Color Grafik Video Board DM 78—
RS232 Interface Karte DM ep —
Centronics Paralell Interface Karte DM ep -
Multifunktion Interface Board DM 99—
Eprom Writer Interface Karte ?8—
Multi 1/O Board 78,—
Mainboard XT Version, 8 Slots 98,—
Mainboard PC Version, 8 Slots 96,—
RAM Card für Speicher-Erweiterung 68.—
Alle Leerplatinen werden mit Bestückungsplan geliefert.
Schaltbilder, soweit verfugbar, Lieferung gegen Aufpreis.
IBM -- Gehäuse/Netzteile/Tastaturen/Diskdrives — IBM
Rechner Leergehäuse f. Einbau v. 2 Drives DM 198,—
Profi-Tastatur, m. Kabel im Gehäuse, ASCII DM 398,—
dto. wie vor, jedoch deutsche DIN Belegung 418,—
Standard Tastatur, IBM-Look, ASCII 298,—
Netzteil, mit Ventilator, 100 Watt 298,—
dto. wie vor jedoch 135 Watt 338,—
Disketten Laufwerk, 2x40 Track DS/360 KB 398,—
Harddisk 10MByte, kpl. m. Xebec Controller DM 2990,—
Sonderliste gegen Rückporto. Katalog gegen 3 DM in Briefmarken
*KL-2040 DM
*KL-2041 DM
*KL-2042 DM
*KL-2071 DM
*KL-2022 DM
*KL-1004 DM
23
von N.G. Barbieri
Teil 3: Tricks über Tricks
Was ist eigentlich der Applesoft-Interpre-
ter? Fur den Applesoft-Anfånger ein unbe-
kanntes Wesen im Apple, das fur Dauer-
belåstigung mit , SYNTAX ERROR" sorgt;
für den Applesoft-Kenner ein persönlicher
Gegner, den es unbedingt auszutricksen
gilt; und für den Assemblerprogrammierer
schlicht und einfach eine Ansammlung
von Maschinenroutinen, die nach Möglich-
keit durch eigene Routinen aufzurufen und
zu erweitern sind. Dies setzt jedoch ge-
naue Kenntnisse über Aufbau und Struktur
des Interpreters voraus.
Nee
OR
BOX.COPY
Damit kommen wir zu der in diesem Bei-
trag abgedruckten Utility BOX.COPY. Wie
bereits angekundigt, handelt es sich um
das punktweise Kopieren des Inhalts ei-
nes in der HGR1-Seite definierten Recht-
ecks auf eine andere Stelle derselben
24
Graf-quattro
Seite oder wahlweise auf die HGR2-Seite.
Bindet man diese Utility in die Routinen
der vergangenen Beiträge ein, dann ist es
von Applesoft aus sehr einfach: Cursoren
einmal positionieren, dann ein zweites
Mal, ein POKE 255,0 für Übertragung
HGR1-HGR1 oder POKE 255,1 für Über-
tragung HGR1-HGR2, ein CALL 25297,
und die Sache låuft schon. Will man nur
diese Routine allein in eigene Programme
einbauen, dann immer — in der Reihenfol-
ge X1LOW, X1HIGH, Y1 und X2LOW,
X2HIGH, Y2 — die Eckwerte der ursprüng-
lichen Box in $03C4 (964) bis $03C9 (969)
und die Eckwerte des Zielgebietes in
$03CA (970) bis $03CF (975) poken, Sei-
tenflag in $00FF (255) nicht vergessen
und nun CALL 25297.
Zu dem eigentlichen Assemblerpro-
gramm, insbesondere für diejenigen, die
in der Maschinensprache ihre ersten
Schritte wagen, ist noch einiges zu sagen:
Es handelt sich um eine reine „Bit-an/Bit-
aus-Übertragung“ ohne Rücksicht auf das
letzte Bit oder die Positionierung (d.h. Co-
lor-Bereich oder gerade und ungerade Hi-
res-Spalte), so daß beim Übertragen von
farbigen Ausschnitten komische Farbver-
schiebungen eintreten können. Demge-
genüber klappt es bei schwarzweiß immer.
Das Programm besteht aus zwei Teilen:
Der erste Teil untersucht die relative Posi-
tion der zwei Rechtecke und entscheidet,
ob das Kopieren von links nach rechts und
von oben nach unten oder umgekehrt ver-
laufen soll, da es für den Fall, daß sich
Ursprungs- und Zielbox überschneiden,
passieren könnte, daß man kopiert, was
schon einmal kopiert worden ist. Das Pro-
blem ist ähnlich wie beim Moven von Spei-
cherbereichen, nur daß hier die Über-
schneidung zweidimensional sein könnte.
Der zweite Teil (ab LOOP) holt sich ein-
fach einen Punkt von einer Stelle und
bringt ihn an einer anderen Stelle unter,
bis der ganze Inhalt der Box übertragen
worden ist (siehe auch Kommentar).
Drei Tricks für Anfänger
16-Bit-Vergleich
Jeder kennt die CMP-Funktion (Compare)
zum Verzweigen (Branch) je nach Carry-
oder Zero-Flag, obwohl gelegentlich beim
Bestimmen, was größer, gleich oder klei-
Peeker 8/85
ner ist, Verwirrungen entstehen können.
Belegen aber die zu vergleichenden Werte
zwei Bytes (wie im Falle der X-Koordina-
ten), ist die einfachere Version erst ein
Vergleich der High-Bytes und, wenn sie
gleich sind, ein zweiter Vergleich der Low-
Bytes, um die Sache endgültig klarzuma-
chen. Der im Programm gezeigte Weg
(Trick Nr. 1) ist kürzer und schneller. Erst
ein Vergleich der zwei Low-Bytes, um das
Carry-Flag entsprechend zu setzen, dann
eine Subtraktion (mit Carry) der zwei High-
Bytes, so daß am Ende die üblichen Bran-
ches erfolgen können.
16-Bit-Dekrement
Was beim 16-Bit-Inkrement klappt, d.h.
das High-Byte wird dann inkrementiert,
wenn das Low-Byte den Wert $00 ein-
nimmt (ansonsten BEQ), ist beim Dekre-
mentieren nicht gegeben, da der Wert $00
des Low-Bytes auch mitgenommen wer-
den muB. Also greift man normalerweise
zur 16-Bit-Subtraktion, wobei vom High-
Byte immer eine 0 mit Carry subtrahiert
wird. Mit dem kleinen Kniff (siehe Trick Nr.
2) wird beim 16-Bit-Dekrement auch die 0
immer mitgenommen.
HSCRN-Routine
An sich hatte ich ursprunglich vor, diese
Routine als separate Utility zur allgemei-
nen Benutzung zu gestalten, aber dann
habe ich es mir anders überlegt. Trotz
ausgedehntem Einsatz von Zeropage-
Pointern ist das bitweise Übertragen auch
so langsam genug! Überträgt man eine
Box in der Größe der ganzen Grafikseite,
d.h. 53760 Punkte, dauert dieses etwa 33
Sekunden. Eine gesonderte Routine hätte
Peeker 8/85
für jeden einzelnen Punkt zusätzlich ein
JSR und ein RTS gekostet, also ganze 12
Zyklen mehr, und das macht sich be-
merkbar!
Ich möchte dem Leser aber eine separate
HSCRN-Routine nicht vorenthalten. Die
Routine HSCRN ist völlig relokativ, so daß
man wie folgt vorgehen kann:
Ein BLOAD HSCRN, A... an jede beliebige
Stelle. Danach die in Frage kommenden
Koordinaten in der üblichen Reihenfolge
(XLOW, XHIGH und Y) in $0000, $0001
und $0002 poken, dann CALL... (Stelle
von A = Anfangsadresse der Routine),
danach ein N = PEEK (3). Ist N = 0, dann
ist der angepeilte Punkt schwarz, ist
N < > 0, entsprechend weiß. Einfach,
nicht wahr?
Mit dieser Folge sind die Assembler-Rou-
tinen für das erste Modul der Serie Graf-
quattro komplett. Jetzt heißt es zusam-
menstellen, also Diskette mit allen Assem-
bler-Routinen in das Laufwerk legen und
dann:
BLOAD XPLOT
BLOAD CURSOR 1
usw. bis
BLOAD BOX.COPY
Danach:
BSAVE GRAF.QUATTRO1, A$6000, L$466
Wer sich diese Mühe nicht machen will,
kann auch die entsprechende Peeker-Dis-
kette bestellen!
Eigentlich könnte jetzt jeder Applesoft-
Programmierer seinen eigenen Hires-
Page-Editor selber schreiben. Nichtsde-
stoweniger wird mein eigener Editor dem-
nächst im Peeker erscheinen.
Grafik g f, electronic 1
Neue Preise # 8
IBM-PC/XT-COMPATIBLE COMPUTER+ZUBEHÖR
Mainboard XT f. 16bit+256K-RAM+8 Slots, Leerkarte
Disk Controller leer (f. 4 x 360KB-Drives)
Monochrome Graph. + par. Printer Leerkarte (Hercules comp.)
Color RGB + Video Graphik Leerkarte
Parallel Printer Leerkarte
512K-RAM Leerkarte
Multi 1/O Leerkarte (Printer, Ser., Game, Uhr gepuffert)
384K-Multi 1/O Leerkarte w.o
Mainboard XT-16bit+ (bis 256K-aufr.) + 881. best. +gepr
OK + Boot Eprom
Mainboard w.o jedoch 256K-vollbest
64KB-RAM-Chip-Aufrüstsatz(9 Stück) einzeln geprüft!
Disk Controller gepr. (f. 4 x 360KB-Drives)
Monochrome Graph. + par. Printer Karte gepr. (Hercules comp.)
Color RGB + Video Graphikkarte gepr
Parallel Printer-Karte gepr. o. Kabel (Extra Kabel = 75,—) Kl
512K-RAM-Karte gepr. (OKB) 188,--
384K-Multi 1/O Karte, RS 232, par. Printer, Interf. Game/Joystick Port
Real Time Clock gepuff. OK + RAM-Disk/Spooler/Uhr Softw
384K-Multi 1/0 w.o. vollbest. + gepr
Multi VO Karte (Par.+Ser.+Uhr gepuffert) gepr
Profi-Funktionstastatur dt. oder ASCII+15er Block
130W-Netzteil mit eingebautem Ventilator KurzschluBfest
360KB-Diskdrive Slimline ohne Gehåuse
XT-256K-16bit Rechner (incl. Boot-Eprom)+360K-Drive + Contr.
+F. Tastatur im IBM-look like Geh.+130W-Netzteil best.+gepr.
XT-256K w.o + Color-RGB + Video-Graphik-Karte 2645
XT-256K w.o aber mit Monochrome-Graphik-Karte+par. Printer int. 2898
IBM-PC-Systemeinheit + Laufwerk
IBM deutsche DIN-Tastatur
IBM-Bildschirm Color
PC 10-Commodore dt. Tast
GENIE 16 C (256K-RAM bis 640K aufr.) 2 x 360K-Drive,
ser. + par. Printer - incl., dt. Tastatur
Software+ Manual für IBM+ compatible Geräte
Microsoft flight simulator
CPM 86
Lotus 1-2-3
Framework
D-base Ill
UCSD P-System
Symphony
APPLE-BUS COMPUTERPLATINEN+PERIPHERIE
Motherboard durchkontaktet mit Lötstoplack
M-board II 48K, gesockelt, vollbest.+gepr
M-board II 64K+Z80 CPU, gesockelt, v.best.+gepr
M-board lle 64K vollbestückt+gepr
APOLLO II Kunststoff-Leergehåuse
APOLLO II Gehäuse incl. Funkt.-Tast
Leerplatine: 16K-RAM, Z80/CPU-, Controller DOS 3.3,
Parallel-Druckerkarte, Ser. Int. V24, 802/24Z-Karte
PAL-Modulatorkarte, je
Entwicklungslochraster-Leerplatine durchkontaktiert
16K-Speicher-Karte geprüft
APPLE orig. 16K-Language Karte gepr
Z-80 CPU-Karte geprüft
Controller DOS 3.3-Karte geprüft
Auto-Controller DOS 3.2/3.3-Karte gepr
Erphi AFDC 2 Controller + Autopatch Softw. + Handbuch
Parallel-Drucker-Karte geprüft
Bbit par. Grappler-Int.+64K-Buffer+Kabel gepr
Seriell-Interface-Karte V24 geprüft
Super-Seriell-Interface Karte gepr
80-Zeichen/24-Zeilen-Karte geprüft
80Z/24Z-Karte+Softswitch-Schalter Leerplatine `
802/24Z-Karte+Softswitch-Schalter geprüft
IEEE-488 Int. Karte gepr
PAL-Modulator/Color-Karte geprüft
PAL-RGB-Color Karte gepr
128K-Speicher-Leerkarte
128K-Speicher-Leerkarte + Software + Manuel
128K-Speicher-Karte+Software geprüft
256K-Speicher-Leerk.+4 Spezial ICs+Software
256K-Speicher-Karte+Software geprüft
Maus incl. Software
EPROM-Burner (2708/16/32/64) geprüft
Modem Euronorm-Karte gepr. + Software + Man
UHF/TV-Modulator universell
Lüfter anclipsbar (220 V)
Dataphon s21d Akustikkoppler-FTZ
APOLLO // (48K)+UHF-Mod.+Gr/Kl vollbest.+gepr.+F.-T.
APOLLO // (64K)+Disk II F+Contr.+12"-Monitor
APOLLO //A (48K)+Gr/KH15er-Tastatur vollbest+gepr.+F--T.
APOLLO //A (64K)+Disk II F+Contr.+12"-Mon
APOLLO // ASKF (48K) vollbest. + gepr. Sep. Keyboard+Gr/Ki+
15er-Block mit Funkt.-Tasten im „IBM-look like“ Gehäuse
APOLLO // ASKF (48K) w.o + Disk II F + Contr.
APOLLO // ASKF (48K) w.o jedoch 2 x Disk II F + Contr
Aufpreis für M-board // 64K+Z80 CPU
APPLE-DuoDisk, 2 x 143 KB+Controller orig
APPLE-Disk // Laufwerk+Contr.+Kab. DOS 3.3+ProDOS orig.
APPLE-Disk // (2. Laufwerk) orig
Disk //+Contr.+Kabel DOS 3.3 (Siemens) im Geh
Disk // (2. Laufwerk, Siemens) im Geh
Disk //F+Contr.+Kab. DOS 3.3 (1/2 Höhe) im Geh
Disk //F (2. Laufwerk, 1/2 Höhe) i. Geh
Erphi Duo-Disk 1,2 MByte incl. Netzteil+Contr.
Maus f. Apple // incl. Manual+Software
APPLESOFT+TurorialH-Reference Manual engl
APPLE-DOS 3.3 Manual engl
APPLE-DOS 3.3 Hb.dt,
APPLE ProDOSHB + Disk orig.
APPLE-Pascal Reference+Operating Manual engl
APPLE-Pascal USCD 1.1. Disks+Manuals orig
APPLE-Pascal Reference Hb. dt
APPLE-Pascal Language Hb. dt
APPLE-FORTH Manual engl
APPLE-Fortran Manual engl
CP/M-Software Vol. Hl, Manual engl
APPLE // Pascal-Handbuch deutsch (te-wi)
APPLE //-Anwenderhandbuch deutsch (te-wi)
6502-Programmier-Handbuch deutsch
6502-Anwendungen Handbuch deutsch (Rod.Zaks
Software + Manual f. APPLE+compatible Geräte
apple how to, apple soft tool kit, cp/m basic compiler, cbasic
dbase // ver. 2.4, wordstar+ mailmerge + spellstar mit installprogramm
apple logo, datastar, calcstar, pfs file, pfs grapg, pfs re+port, apple
fortran, cp/m c language, spitfire simulator, c-programming language
flight simulator, visicalc, visischedule, visitrend, multiplan, supersort
microsoft cobol 80, microsoft fortran 80, dgraph+dbase utility
APOLLO //e (64K) PAL+15er Block, vollbest. und gepr.
APOLLO //e 128K+802/24Z-Karte
APPLE //e 128K+802/242-Karte
APPLE //e (64K)+Disk II F+Contr+12”-Monitor
802/24Z+Softswitch+64K-RAM-Karte geprüft
APPLE //c (128K) dt. Tastatur
Z80 Karte gepr. f. APPLE //c+RAM-Disk-Software Hb
Macintosh System (128K)
Macintosh System (512K)
7 oe
Macintosh Umrüstung von 128K auf 512K --
SANYO MSX-Computer MPL 64 dt. Tastatur pm
EPSON GX 80+, *NEU*NEU*NEU*
EPSON RX 80+, 8bit/parallel
EPSON RX 80F/T+, 8bit/parallel
EPSON RX 100+, 8bit/parallel
EPSON FX 80F/T+, 8bit/parallel
EPSON FX 100+, 8bit/parallel
EPSON LQ 1500+, 8bit/parallel
EPSON Traktoraufsatz für FX 80
APPLE/EPSON-Drucker Graphic-Interface+Kabel
MX 80/82, FX/RX 80 Spezialfarbband-Kassette
BROTHER-Typenraddr. HR 15XL 8bit/par. neustes Mod
STAR SG10, NLQ- + IBM-Zeichensatz, 8bit/par
Zenith ZVM 123 gr. 12" oder Zenith ZVM 122 or. 12" 15 MHz
SANYO DM 2212 12" orange 15 MHz
SANYO 9112 Monochromer Monitor 12", gr
Monochromer 12"-Monitor entspiegelt gr. 0. or. 22 MHz
Disketten in Box + Aufkleber I. Wahl 10 St./100 St. å
54" Verstårkt BASF 3M FUJI DATA NEUTRAL
SCOTCH MAGNE-
1X, SS/SD
1D, SS/DD
2D, DS/DD
1D/96TPi
2D/96TPi
2HD/1.2MB
1X, Hard
8”
1X, SS/SD 49/ 4,39 6
79/ 4,59
7,09/ 6,89 © €
9/ 4,39 6,68/ 6,48
10,99/ 9,99 11,78/11.38
Zweiseitig 14,99/14,29
3M-Scotch 51⁄4” Flüssig-Reinigungsset (2 Disk.) einseitig
BASF 5" Reinigungsdiskette einseitig
51⁄4" Disketten-Archivbox für 10 Disks (1 St./10 St.)
54" Disketten-Archivbox für 15 Disks 3M
51" Disk-Karteikasten Kunststoff (ca. 80 Disk)
514" Disk-Karteikasten Kunststoff (ca. 80 Disk) Rauchglas
514" Disk-K.K. Rauchglas, abschließb. (f. ca. 80-100 Disks)
2000 BI. Tabpapier (24 cm x 12” einf.) weiß oder grün/weiß Gert
4000 Et-Aufkl. doppelr. (107 x 36 mm auf 240 x 12" perf, Trägerp.)
16000 Etiketten-Aufkleber w.o
4000 Etik.-Aufkl. einreih. (107 x 36 mm auf 125 x 12" perf. Träg.)
OSZILLOSCOPE HAMEG ab Lager
Bei Vorauszahlung frei Empfangsstation unversichert in der BRD, ausgenom
men Papier und Etiketten, sonst N.N.+V.S. ab DM 30,--
Öffnungszeiten: Mo, Di. Do, Fr v. 10-18 h, Miu. Sa v. 10-14 h, la. Sa v. 10-18 h
Telef. Best.: Mo. Di. Do. Fr von 10-19 Uhr, Mi u. Sa wie Öffnungszeiten
GEWÄHRLEISTUNG: 6 Monate. auf alle bei uns gekauften Geräte, durch
unsere eigene Sen ıc#- Werkstatt
REPARATUREN an Appie + npatible Geräten + Zubehör führt unser
Speziallistenteam garantiert zuverlässig + besonders Kostengünstig aus
Sprechen Sie mit uns.
Telex: 0772642 aaa-d
Habsburgerstraße 134
7800 FREIBURG, Tel. (07 61) 276864
Bauelemente - Bausätze - uP's
Meßgeräte - Zubehör - Fachliteratur
Fachgeschäft für Elektronik + Mikrocomputer
K electronic ,
25
BOX.COPY
26
(O O JO Q Ë Q N
ORG $62D1 ; 25297
BOX.COPY
von N.G. Barbieri/1985
Aufrufen mit CALL 25297
Kopiert den Inhalt einer Box
bitweise auf eine andere
Stelle derselben (HGR1) oder
der anderen (HGR2) Grafik-
seite.
* H k HH HH HH H HH H H
Applesoft-Routinen u. -Pointer
*
HPOSN EQU $F411
HPLOTO EQU $F457
GBASL EQU $26
HMASK EQU $30
HCOLORZ EQU $E4
HPAG EQU $E6
*
* Cursorposition der
* ursprünglichen Box
*
CA1XL EQU $3C4
CA1XH EQU $3C5
CA1Y EQU $3C6
CA2XL EQU $3C7
CA2XH EQU $3C8
CA2Y EQU $3C9
*
* Cursorposition
* des neuen Platzes
*
CU1XL EQU $3CA
CU1XH EQU $3CB
CU1Y EQU $3CC
CU2XL EQU $3CD
CU2XH EQU $3CE
CU2Y EQU $3CF
*
* Zàhler für X- u. Y-Richtungen
*
COUNXL EQU $1D
COUNXH EQU SIE
COUNY EQU $1F
*
* X,Y-Koordinaten des zu
* übertragenden Bits
*
XLOW EQU $9®
XHIGH EQU $Ø1
Y EQU $Ø2
*
* Links/Rechts-Flag
*
XFLAG EQU $Ø3
*
* X,Y-Zielkoordinaten
*
XLOW2 EQU $Ø6
XHIGH2 EQU $97
Y2 EQU $Ø8
*
* Oben/unten-Flag
*
YFLAG EQU $09
*
* Temporàre Ablage für beide
* X-Koordinaten u. X-Zåhler
*
TEXL1 EQU $F9
TEXH1 EQU $FA
TEXL2 EQU $FB
TEXH2 EQU $FC
COXL EQU $FD
COXH EQU $FE
* D
* Grafikseite-Ubertragunsflag:
* wenn Ø auf HGRl, sonst auf HGR2
*
PFLAG EQU $FF
*
*
C6 Ø3 88
Ø6
LDA
CMP
BNE
Wenn beide
auf 2!
LDA
STA
BNE
CA1Y
CU1Y
STEP1
Y gleich, dann Flag
+$2
YFLAG
TESTX
Feststellen, ob von oben nach
unten oder
umgekehrt und YFLAG
entsprechend setzen.
TEP1 BCS
LDA
STA
BNE
DOINC LDA
STA
* * * * H
HJ
Di
LO
HJ
><
LDA
BNE
Festellen,
* * * * *
LDA
CMP
BEQ
BCS
BCC
LDA
CMP
BNE
DOINC
+$1
YFLAG
TESTX
#$Ø
YFLAG
Wenn Übertragung auf der an-
deren Seite, dann egal
welche Richtung!
PFLAG
DOXINC
ob von links nach
rechts oder umgekehrt und XFLAG
entsprechend setzen.
CA1XH
CU1XH
TXLOW
DOXINC
DOXDEC
CA1XL
CUlXL
STEP2
Wenn gleiche X- und Y-Werte u.
gleiche Seite, warum übertragen?
Jetzt wird
klar, warum bei
gleichen Y-Werten das YFLAG
auf 2 steht!
LDA
CMP
BEQ
STA
JMP
STEP2 BCS
DOXDEC LDA
STA
BNE
DOXINC LDA
STA
*
LDA
CMP
BNE
LDA
STA
RTS
YFLAG
+$2
RET1
XFLAG
STEP3
DOXINC
+$1
XFLAG
STEP3
+5Ø
XFLAG
CA1Y
CA2Y
DOIT
+$20
HPAG
Für den Y-Zåhler testen, was
wovon subtrahiert werden
muß!
OIT BCC
SEC
SBC
STA
LDA
BEQ
BNE
SEC
LDA
SBC
STA
LDA
BEQ
*
CA2Y
CA1Y
COUNY
YFLAG
MOD2
* Y-Startpunkte setzen.
Peeker 8/85
D
Ak Abo-Karte
> Buch -Shop
> Software -Karte
EEKER 94
MAGAZIN FUR APPLE-COMPUTER
Ja, ich möchte peeker abonnieren.
Liefern Sie mir peeker ab Ausgabe (1985 erscheinen 11 Ausgaben —
1 Doppelnummer) zum Jahresbezugspreis von DM 72,- (Inland) incl. MwSt. Die
Lieferung erfolgt frei Haus. Porto, Verpackung und Zustellgebühren übernimmt
der Verlag. Der Jahresbezugspreis für das Ausland beträgt DM 72,- incl. MwSt.,
zzgl. DM 16,80 Versandspesen.
Ich wünsche jährliche Berechnung durch:
[_] Verlagsrechnung [ | Abbuchung von meinem Bank-
bzw. Postscheckkonto
Bank / PschA
Bankleitzahl Kto.-Nr.
Datum Unterschrift
EEKER 44
MAGAZIN FÜR APPLE-COMPUTER
Bitte senden Sie mir gegen Rechnung folgende Bücher:
Datum Unterschrift
EEKER 44
MAGAZIN FÜR APPLE-COMPUTER
Bitte senden Sie mir
gegen Rechnung folgende Apple-Programme:
O Peeker-Sammeldiskette, einzeln O Apple DOS 3.3, Begleitdiskette, DM 28,-
Disk# `. Disk O Apple ProDOS, Band 1, Begleitdiskette,
Disk# — —, Disk# DM 28,-
Preis je Disk DM 28,- (einzeln) = en Band 2, Begleitdiskette,
[] Peeker Sammeldiskette, D Apple Assembler, Begleitdiskette, DM 28,-
im Fortsetzungsbezug D ProDOS-Editor 1.0, Programm, DM 98,-
Bb Disk FF nn O MMU 2.0, Programm, DM 98,-
(Mindestbezug 6 Disketten) D INPUT 2.0, Programm, DM 98,-
Preis je Disk DM 20,- 0 Softbreaker 1.0, Programm, DM 48,-
O DB-Meister, Programm, DM 290,-
O Superplot, Programm, DM 48,-
O Superquick, Programm, DM 48,—
Datum Unterschrift
°
PLZ/Ort
Vertrauensgarantie:
- Ich habe davon Kenntnis genommen, daß ich die Bestellung
| schriftlich durch Mitteilung an den Dr. Alfred Hüthig Verlag,
Ø Postfach 102869, 6900 Heidelberg 1 innerhalb von
7 Tagen widerrufen kann. Zur Fristwahrung genügt die
rechtzeitige Absendung des Widerrufs (Datum des
Poststempels).
Datum
| Unterschrift
Verlagshinweis:
Das Abonnement verlångert sich zu den jeweils giltigen
Bedingungen um ein Jahr, wenn es nicht 2 Monate vor
S
Bä
Jahresende schriftlich gekündigt wird.
° Meg bitte vollståndig ausfullen
£ __ Vorname, Name
Firma
Telefon mit Vorwahl
Telefon mit Vorwahi
POSTKARTE
peeker
Leserservice
Postfach 10 28 69
6900 Heidelberg 1
POSTKARTE
peeker
Versandbuchhandlung
Postfach 10 28 69
6900 Heidelberg 1
POSTKARTE
peeker
Softwareabteilung
Postfach 10 28 69
6900 Heidelberg 1
INPUT 2.0
Ein Bildschirm-
Maskengenerator
fúr DOS 3.3 und ProDOS
von U. Stiehl
1984, Diskette und Manual, DM 98,-
ISBN 3-7785-1021-5
„Input 2.0" liegt wahlweise in der Bank 1
oder Bank 2 der Language Card und wird
durch einen kurzen Driver in den unteren
48K aufgerufen.
Für jedes Feld der Bildschirmmaske lassen
sich u. a. definieren: Feldlänge (bis zu 255
Zeichen) — Vtab — Htab — Datentyp (insge-
samt 8 Typen) — Scrollflag (starre oder dyna-
mische Maske) — Ctriflag — Fullflag — Lösch-
flag — Bildschirmflag (40- oder 80-Z-Darstel-
lung). Innerhalb eines Eingabefeldes besteht
jeder denkbare Redigierkomfort (Insert, De-
lete, Rubout, Restore usw.).
Gerätevoraussetzung: Apple lle oder lic; fer-
ner Apple II+ im 40-Zeichenmodus
MMU 2.0
Memory Managements
Utilities
für die Apple lle 64K-Karte
DOS 3.3 (und ProDOS)
von U. Stiehl
1984, Diskette und Manual, DM 98,-
ISBN 3-7787-1023-1
Insgesamt enthält die neue ,MMU 2.0"-
Diskette über 25 Programme, die neue
Einsatzmöglichkeiten für die Extended 80
Column Card (erweiterte 80-Z-Karte =
64K-Karte für den Apple lle) erschließen.
Ein Teil der Programme laufen auch auf
dem Apple Il Plus, doch ist „MMU 2.0"
primär für 64K-Karte-Besitzer gedacht.
Gerätevoraussetzung: Apple lle mit 64K-
Karte oder lic
Softbreaker 1.0
Eine softwaremäßige Interrupt-Utility
für die Apple lle 64K-Karte
von U. Stiehl
1984, Diskette und Manual, DM 48,-
ISBN 3-7785-1022-3
Softbreaker ist ein Assemblerprogramm, mit
dessen Hilfe Programme, die sich von der
64K-Karte (= Extended 80 Column Card fur
den Apple lle) starten lassen, unterbrochen,
gespeichert, geladen und exakt an der Stelle
der Unterbrechung fortgefuhrt werden kön-
nen. Dadurch ist es auch möglich, Siche-
rungskopien von sogenannten kopierge-
schützten Programmen herzustellen.
Mit Softbreaker unterbrochene Programme
werden komplett, d. h. die ganzen 64K ein-
schließlich Language Card, in nur ca. 11 Se-
kunden auf einer formatierten Diskette gesi-
chert.
Gerätevoraussetzung: Apple lle mit 64K-
Karte
Hüthig Software Service,
Postfach 10 28 69, D-6900 Heidelberg
LDX CA2Y
LDY CU2Y
JMP STEP4
LDX CAIY
LDY CU1Y
STX Y
STY. Y2
INC COUNY
Für den X-Zåhler testen, was
wovon subtrahiert werden
muß!
*** TRICK NR. 1 ***
LDA CUIXL
CMP CU2XL
LDA CU1XH
SBC CU2XH
BCS SUBX2
SEC
LDA CU2XL
SBC CUIlXL
STA COUNXL
LDA CU2XH
SBC CU1XH
STA COUNXH
XFLAG
MOD3
BEQ MOD4
SEC
LDA CU1XL
SBC CU2XL
STA COUNXL
LDA CU1XH
SBC CU2XH
STA COUNXH
LDA XFLAG
BNE MOD4
*
* X-Startpunkte setzen.
*
MOD3 LDX CA2XL
LDY CA2XH
STX XLOW
STY XHIGH
LDX CU2XL
LDY CU2XH
JMP REST
LDX CAIXL
LDY CA1XH
STX XLOW
STY XHIGH
LDX CU1XL
LDY CU1XH
STX XLOW2
STY XHIGH2
INC COUNXL
BNE WEITER
INC COUNXH
X-Koordinaten und X-Zåhler
in die Ablage bringen.
* * * H
WEITER LDX XLOW
LDY XHIGH
STX TEXL1
STY TEXH1
LDX XLOW2
LDY XHIGH2
STX TEXL2
STY TEXH2
LDX COUNXL
LDY COUNXH
STX COXL
STY COXH
*
* Jetzt geht's los!
*
LOOP LDA +$2Ø
STA HPAG
*
HSCRN-Routine
Punkt an oder aus ist
* * * *
LDX XLOW
LDY XHIGH
LDA Y
JSR HPOSN
LDA (GBASL),Y
AND HMASK
AND #$7F
und dann den entsprechenden
schwarzen oder weiBen Punkt auf
die neue Stelle plotten.
* * H * *
BEQ BLACK
LDA +$7F ;weiB
BNE POINT
BLACK LDA #$Ø ‚schwarz
POINT STA HCOLORZ
*
Grafikseite-Flag (PFLAG) testen
und entsprechende Vorkehrungen
für die Übertragung treffen.
LDA PFLAG
BEQ PAGE1
LDA #$4Ø
STA HPAG
LDX XLOW2
LDY XHIGH2
LDA Y2
JSR HPLOTO
X-Zåhler bis auf Ø dekrementie-
ren, dann nach DOY
DEC COUNXL
BNE DOX
LDA COUNXH
BEQ DOY
DEC COUNXH
Je nach XFLAG X-Koordinaten
in- oder dekrementieren.
*
*
D
D
D
0X LDA XFLAG
BNE DECRX
INC XLOW
BNE NEXTX
INC XHIGH
INC XLOW2
BNE LOOP
INC XHIGH2
BNE LOOP
*
* *** TRICK NR. 2 ***
*
DECRX LDA XLOW
BNE DOLL
DEC XHIGH
DOL1 DEC XLOW
LDA XLOW2
BNE DOL2
DEC XHIGH2
DOL2 DEC XLOW2
JMP LOOP
Y-Zåhler dekrementieren.
Ist er Ø, dann erledigt,
sonst
U * k*k k * *
OY DEC COUNY
BEQ RET2
*
* ... je nach YFLAG Y-Koordinaten
* in- oder dekrementieren und ...
*
LDA YFLAG
BEQ INY
DEC Y
DEC Y2
JMP RSTX
INC Y
INC Y2
E?
* ... die Start-X-Werte und den
* X-Zähler wieder für eine
Ermitteln, ob ein angesprochener
grafik 94
29
6446:
6448:
6444:
644C:
644E:
6450:
6452:
6454:
6456:
6458:
645A:
645C:
645E:
6461:
6463:
6465:
405 Bytes
HSCRN
355 * neue Runde
356 *
357 RSTX LDX
358 LDY
359 STX
36Ø STY
361 LDX
362 LDY
363 STX
364 STY
365 LDX
366 LDY
367 STX
368 STY
369 JMP
STØ *
371 RET2 LDA
372 STA
373 RTS
*
XLOW EQU
XHIGH EQU
Y EQU
FLAG EQU
GBASL EQU
HMASK EQU
HPOSN EQU
*
* Ermittelt,
Oo AO OG Q Dr
= =
= =
herstellen.
TEXL1
TEXH1
XLOW
XHIGH
TEXL2
TEXH2
XLOW2
XHIGH2
COXL
COXH
COUNXL
COUNXH
LOOP
+$2
HPAG
von N.G. Barbieri/1985
$ØØ
$Ø1
$Ø2
$Ø3
$26
$3Ø
$F411
ob ein Hires-Punkt
* weiß oder schwarz ist.
* Resultat in FLAG: ® = schwarz,
*
*
nicht Ø = weiB.
XLOW
XHIGH
Y
HPOSN
(GBASL),Y
HMASK
+$7F
FLAG
Der nåchste Peeker
Heft 9/1985
erscheint am
26.8.1985
30
Einzelbezug DM 28,—
Fortsetzungsbezug DM 20,—
(Jederzeit kündbar, jedoch mindestens
6 Disketten)
(* = nur auf Diskette, nicht im Peeker
gelistet! Seitenangaben beziehen sich
auf Beginn des Listings)
Hüthig Software Service
Postfach 102869 - 6900 Heidelberg 1
Diski 1
(Heft 1+2, 1984)
T.DISASSEMBLER.65C02 (1/84, S. 15)
DISASSEMBLER.65C02
T.ACCEL.WAIT (1/84, S. 22)
ACCEL.WAIT
T.ACCEL.BOOT
ACCEL.BOOT
ACCEL.LC.KOPIERER
T.ACCEL.LC.KOPIE
ACCEL.LC.KOPIE
T.ACCEL.ROM.KOPIE1
ACCEL.ROM.KOPIE1
T.ACCEL.ROM.KOPIE2
ACCEL.ROM.KOPIE2
TURTLE.GRAFIK.MIT.REMS (1/84, S.29)
TURTLE.GRAFIK.OHNE.REMS *
DOUBLE.LORES.SOFTSWITCH.DEMO
(1/84, S. 37)
DOUBLE.LORES.APPLESOFT.DEMO
AMPER.DOUBLE.LORES.DEMO
T.AMPER.DOUBLE.LORES
AMPER.DOUBLE.LORES
T.DOUBLE.LORES
DOUBLE.LORES
HIRES (1/84, S. 41)
T.PRINTHIRES
PRINTHIRES
DHGR.APSOFT.DEMO (2/84, S. 30)
AMPER.DOUBLE.HIRES.BAS
AMPER.DOUBLE.HIRES
T.AMPER.DOUBLE.HIRES
DHGR.LINEPLOTTER
INSTRING.TEST (2/84, S. 43)
INSTRING.OBJ
T.INSTRING.OBJ
INSTRING.LISA.SOURCE
LOESCHEN.EINES.ARRAYS
(2/84, S. 52)
ULTRATERM.ENGLISCH * (2/84, S. 60)
ULTRATERM.DEUTSCH *
PRIMZAHLEN.OVERMEYER *
(2/84, S. 70)
PRIM.OBJO *
PRIM.OBJ1 *
Peeker-
PRIM.TEST *
PRIM.TOOLKIT.SOURCE *
Disk #2
(Heft 1-2, 1985, DOS-Format)
T.RAMDISKLC (1-2/85, S. 14)
RAMDISKLC
T.IBS.RAMDISKDRIVER (1-2/85, S. 20)
IBS.RAMDISKDRIVER
T.AP20.RAMDISKTEST
AP20.RAMDISKTEST
T.QUICKCOPY (1-2/85, S. 26)
QUICKCOPY
QUICKCOPY.PUFFER
PRODOS.COPYA
T.PRODOS.COPYOBJ *
PRODOS.COPYOBJ
PRODOS.PATCH (1-2/85, S. 31)
T.APPLESOFT.FRE (1-2/85, S. 36)
T.LC.FRE
LC.FRE
FRE.TEST
T.RAM.FRE *
RAM.FRE
T.SCHIRMDISK (1-2/85, S. 44)
SCHIRMDISK.LISA.SOURCE
SCHIRMDISK
T.VIDEXT
VIDEXT.LISA.SOURCE
VIDEXT
GETPAS (1-2/85, S. 70)
T.GETPAS.ASS *
GETPAS.ASS
GETDOS.PASCAL.SOURCE
COPYDUPDIR.PASCAL.SOURCE
PRODOS.EDITOR.MACROS
(1-2/85, S. 86)
Disk #3
(Heft 1-2, 1985, CP/M-Format)
STEUER.84 (1-2/85, S. 47)
PASS.BAS
MENUE.BAS
HELP.BAS *
A.BAS
B.BAS
C.BAS
D.BAS
E.BAS
F.BAS
G.BAS
H.BAS
I.BAS
Peeker 8/85
Sammeldisketten
J.BAS
K.BAS
L.BAS
M.BAS
N.BAS
Disk +4
(Heft 3 + 4, 1985)
TESTGENERATOR (3/85, S. 26)
SAETZE
BAHNFAHRT *
ZU *
TUN.UND.SOLLEN *
IRGEND *
MULTIPRECISION (3/85, S. 32)
T.WS.TRANSFER (3/85, S. 36)
WS.TRANSFER
T.WS.TRANSFER.2 *
WS.TRANSFER.2 *
GETCPM
PRIM.0.SC.SOURCE (3/85, S. 62)
PRIM.O.BIN
PRIM.1.5SC.SOURCE
PRIM.1.BIN
PRIM.FP
ACCELERATOR.ABSTELLEN
(3/85, S. 66)
T.WILDCARD.TEST * (3/85, S. 72)
WILDCARD.TEST1 *
T.WILDCARD.TEST2 *
WILDCARD.TEST2 *
XPLOT.DEMO (4/85, S. 18)
XPLOT.ROUTINE
T.XPLOT.ROUTINE
MENUE.GENERATOR (4/85, S. 22)
T.MACROS.65C02 (4/85, S. 31)
TERMINAL (4/85, S.36)
TERMINAL.B
T.TERMINAL.B
CAT.ARRAY (4/85, S. 44)
CAT.SAVER
EINTRAG.SUCHER
EINTRAG.ANALYSE
PRODOS.READER
T.PRODOS.READER.OBJ
PRODOS.READER.OBJ
MOUSESTUFF.PASCAL.SOURCE
(4/85, S. 51)
MOUSE.ASS.PASCAL.SOURCE
TESTMOUSE.PASCAL.SOURCE
DRAWMOUSE.PASCAL.SOURCE
INALL.DATA (4/85, S. 70)
SCREEN80.DATA (4/85, S. 33)
Peeker 8/85
SCREEN80.SAVER (4/85, S. 76)
Disk #5
(Heft 5, 1985, DOS-Format)
T.FM.BSP (5/85, S. 9)
FM.BSP
T.SLOTRAMDISK (5/85, S. 13)
SLOTRAMDISK
SLOTRAMDISK.HELLO
PLOT.2.0 (5/85, S. 20)
T.PLOT.B
PLOT.B
PLOT.PROTECTOR
T.CONVERT560 (5/85, S. 26)
CONVERT560
CONVERT560.DEMO
T.EDA (5/85, S. 33)
EDA
TRANSCEND.PASCAL.SOURCE
(5/85, S. 36)
T.BLOCKTRACER (5/85, S. 51)
BLOCKTRACER
T.BLOCKTRACER1
BLOCKTRACER1
FORMAT.LC (5/85, S. 56)
FORMAT.LC.START
T.DISKDRIVER.DEMO
DISKDRIVER.DEMO
RANDOM.DEMO (5/85, S. 69)
COLUMN80.DEMO
SUPERDUMP.EPSON (6/85, S. 22!)
SUPERDUMP.IMAGEWRITER
SUPERDUMP.BILD
T.SUPERDUMP x
SUPERDUMP
EPSON
IMAGEWRITER
Disk #6
HELLO (6/85, S. 72) *
ASMDIV *
CURSOR1 (6/85, S. 6)
T.CURSOR1
CURSOR2
T.CURSOR2
LINIE
T.LINIE
VIERECK
T.VIERECK
BOX
T.BOX
HINTERGRUND
T.HINTERGRUND
PAGE.SWAP
T.PAGE.SWAP
WANDERNDER.STRICH (6/85, S. 16)
KOMPRESSOR.DEMO
KREIS.1
KREIS.2
KREIS.3
FLIPPER
T.FLIPPER
KOMPRESSOR
T.KOMPRESSOR
OLYMPIA (6/85, S. 34)
T.OLYMPIA
FOURIER.MAIN (6/85, S. 38)
FOURIER.SYN
FOURIER.SPEC
AS.ERWEITERUNG (6/85, S. 43)
T.AS.ERWEITERUNG
AS.ERW.PROSTART
AS.ERW.PRO *
T.AS.ERW.PRO x
INSTALL.PASCAL.SOURCE
(6/85, S. 48)
RAMDISK94.PASCAL.SOURCE
INIT.PASCAL.SOURCE
RAMDISK.INIT.DOS (6/85, S. 55)
AUXDRIVER
T.AUXDRIVER
MOVEDRIVER
T.MOVEDRIVER
RAMDISK.FORMATTER
T.RAMDISK.FORMATTER
SOLITAIRE.START (6/85, S. 64)
SOLITAIRE
SOLITAIRE.B
T.SOLITAIRE.B
Disk #7
PYRAMID.PITTY (7/85, S. 6) *
T.PYR.PITTY.O *
T.PYR.PITTY.1 *
PYR.PITTY.O *
PYR.PITTY.1 *
PYR.PITTY.BACK *
PYR.PITTY.SHAPE *
T.MEGAWARP.REL (7/85, S. 8) *
MEGAWARP.REL *
T.MEGAWARP.9900
MEGAWARP.9900
T.SPEEDTEST
SPEEDTEST
FORMAT (7/85, S. 20)
T.FORMAT.OBJ
FORMAT.OBJ
BITEDITOR (7/85, S. 29)
NORMAL *
FETT a
FETT.INVERSE a
PASTOPRO.1D (7/85, S. 62) *
PASTOPRO.2D
T.PASTOPRO.O
PASTOPRO.O
T.CONVERT (7/85, S. 69)
CONVERT
T.VORLESER (7/85, S. 71)
VORLESER
Disk #8
(Heft 8, 1985, DOS-Format)
HELLO *
ASMDIV *
DISKTEST (8/85, S. 14)
DISKTEST.START
T.DISKTEST
KOPY (8/85, S. 22)
BATCHKOPY
T.GETSETINFO
GETSETINFO
BILDTEST
T.BOX.COPY (8/85, S. 26)
BOX.COPY
T.HSCRN
HSCRN
GRAF.QUATTRO.1
T.DOUBLE.LORES (8/85, S. 34)
DOUBLE.LORES
DOUBLE.LORES.DEMO
START.CMD x (8/85, S. 40)
HMENUE.CMD *
AUFNAHME.CMD x
AUFMASKE.CMD x
AUSGABE.CMD *
SUCH.CMD *
EDITFNAME.CMD *
SUCHVNAME.CMD x
SUCHBEME.CMD x
SCHREIBA.CMD x
SCHREIBL.CMD *
LOESCH CMD x
IDSEARCH.PASCAL.SOURCE
(8/85, S. 49)
FAKULTAET.DEMO (8/85, S. 57)
T.FAKULTAET
FAKULTAET
GRAFIK.DEMOS (8/85, S. 68)
ZEICHENJAGD (8/85, S. 70)
T.RAM.FRE.NEU (8/85, S. 70) *
RAM.FRE.NEU
31
Double-Lores-
Applesoft-
Erweiterungen
von Karl-Walter Bott
Wenn Sie einen Apple lle mit einer erwei-
terten 80-Zeichenkarte oder einen Apple
Ilc besitzen, dann können Sie mit der hier
vorgestellten Software den Applesoft-In-
terpreter um sechs neue Grafik-Befehle
erweitern.
Die erweitere 80-Zeichenkarte für den Ap-
ple lle stellt zu den bereits vorhandenen
64K RAM auf dem Motherboard weitere
64K RAM zur Verfügung, die sich auf viel-
fältige Weise einsetzen lassen. Eine dieser
Möglichkeiten besteht darin, die Auflösung
der Lores-Grafik zu verdoppeln, so daß 80
mal 48 Kästchen darstellbar sind. Über die
Organisation und die Programmierung der
Double-Lores-Grafik wurde bereits im
Peeker 1/84 ausführlich berichtet.
Die Programmierung von Double-Lores in
Applesoft-BASIC erweist sich als sehr
umständlich, da der Interpreter keine Be-
fehle zur Erstellung von Double-Lores-
32
Peeker 8/85
Grafiken enthålt, wie man sie von der nor-
malen niedrigauflósenden Grafik gewonnt
ist.
Das hier vorgestellte Software-Paket im-
plementiert die fehlenden Befehle, so daB
Applesoft-Programmierer die Double-Lo-
res-Grafik nutzen können, ohne detaillier-
te Kenntnisse über deren rechnerinterne
Organisation zu besitzen.
schaltet und die erweiterte 80-Zeichenkar-
te desaktiviert.
Dieser Befehl sollte nur dann benutzt wer-
den, wenn die 80-Zeichenkarte vor Aufruf
von &GR nicht aktiv war, da ansonsten
Softswitch-Probleme auftreten. Wurde die
Double-Lores vom 80-Zeichenmodus aus
aktiviert, genügt ein TEXT-Befehl zum Zu-
rückschalten.
Die neuen Befehle
&GR - Das &GR-Statement veranlaßt den
Computer, auf doppelt-niedrigauflösende
Grafik umzuschalten. Dabei wird der Bild-
schirm gelöscht und vier Textzeilen am
unteren Bildschirmrand bereitgestellt. Die
Darstellung auf dem Bildschirm erfolgt
jetzt in einem 80-mal-40-Raster.
Will man die ganze Seite mit Grafik ausful-
len (80 mal 48 Punkte), so muß zunächst
durch
POKE 49234,0
auf Full-Screen-Ausgabe umgeschaltet
werden. Um die acht Grafikzeilen am unte-
ren Bildschirmrand zu löschen, verwende
man dann folgende Befehle:
POKE 49236,0: CALL 63538
POKE 49237,0: CALL 63538.
Hierdurch wird der ganze Bildschirm ge-
löscht und wie oben die Farbe schwarz
eingestellt (COLOR = 0).
& TEXT - Dieser Befehl schaltet von Dou-
ble-Lores-Grafik auf Textdarstellung um.
Es wird der 40-Zeichen-Textmodus einge-
Peeker 8/85
&PLOT — Der &PLOT-Befehl zeichnet ein
Kästchen in der aktuellen Farbe auf dem
Double-Lores-Bildschirm. Der erste Aus-
druck, der dem Schlüsselwort „&PLOT“
folgt, gibt die Spalte an, in der das Käst-
chen gezeichnet werden soll (zwischen
0...79, von links nach rechts); der zweite
Ausdruck, durch ein Komma vom ersten
getrennt, bestimmt die Zeile (0...47, von
oben nach unten).
Beispiel: „&PLOT 10, 15“ plottet einen
Block in Spalte 10, Zeile 15.
Der normale PLOT-Befehl wurde dahinge-
hend erweitert, daß jetzt — wie unter HGR
— auch Linien zwischen zwei oder mehre-
ren beliebigen Punkten gezeichnet wer-
den können.
Beispiel: ,&PLOT 0, 0 TO 79, 47" zeich-
net eine diagonale Linie von links oben
nach rechts unten in der aktuellen Farbe.
Liegen die angegebenen Koordinaten au-
Berhalb des zulåssigen Bereichs, wird das
Programm unterbrochen und die Meldung
„ILLEGAL QUANTITY ERROR“ ausge-
geben.
Grafik 444
&HLIN — Das &HLIN-Statement zeichnet
eine horizontale Linie in der aktuellen Far-
be. Die beiden Ausdrucke, die dem Befehl
, &HLIN" folgen, bestimmen die Spalten-
nummern, in denen der Anfang und das
Ende der Linie liegen. Der Ausdruck, der
dem Schlusselwort „AT“ folgt, bestimmt
die Zeile, in welcher die horizontale Linie
gezeichnet werden soll.
Beispiel: ,&HLIN 20, 60 AT 10" zeichnet
eine horizontale Linie in Zeile 10 von Spal-
te 20 bis Spalte 60.
Wird die zulåssige Spalten- oder Zeilen-
zahl Uberschritten, wird eine Fehlermel-
dung ausgegeben und das Programm un-
terbrochen.
&VLIN — Das &VLIN-Statement zeichnet
eine vertikale Linie. Die beiden folgenden
Ausdrücke bestimmen Anfangs- und End-
Zeile der Linie, während der Ausdruck
nach „AT“ die Spalte bestimmt, in der die
Linie gezeichnet wird.
Beispiel: „&VLIN 10, 30 AT 20“ zeichnet
eine vertikale Linie in Spalte 20 von Zeile
10 bis Zeile 30.
Bei Überschreiten der zulässigen Spalten-
oder Zeilenzahl wird eine Fehlermeldung
ausgegeben und der Programmablauf un-
terbrochen.
&SCRN — Der &SCRN-Befehl ermittelt die
Farbe eines angegebenen Blocks auf dem
Double-Lores-Bildschirm. Der Wert, den
die Funktion zurückgibt, liegt zwischen 0
und 15, und wird der angegebenen Varia-
blen zugewiesen, die wahlweise vom Typ
Integer oder Real sein kann.
Beispiel: „&SCRN(A, 50, 10)" ermittelt
die Farbe des Blocks in Spalte 50, Zeile
10. Die Variable A hat dann einen Wert
zwischen 0 und 15.
Wenn die Variable nicht dem zulässigen
Typ entspricht (z.B. A$) oder die zulässi-
gen Grenzen für die Koordinatenangaben
überschritten werden, erfolgt eine Fehler-
meldung.
Der normale COLOR-Befehl kann weiter-
hin verwendet werden, um die gewünsch-
te Farbe eines Blockes zu definieren, wo-
bei der Ausdruck rechts vom Gleichheits-
zeichen zwischen O und 15 liegen muß.
Beispiel: „COLOR = 15“ wählt die Farbe
weiß aus.
Technische Anmerkungen
Das Programm residiert ab Adresse
$931A im Hauptspeicher und ist 742 Bytes
33
lang, kann aber durchaus auch mit einer
anderen Startadresse assembliert werden.
(Anm.: Dies ist insbesondere für ProDOS
erforderlich. Unter DOS 3.3 liegt das Pro-
gramm unterhalb von $9600, d.h. im Be-
reich $931A-$95FF unterhalb vom dritten
DOS-Puffer bei Maxfiles 3. Man könnte es
auch unterhalb von $9A00 legen und die
DOS-Puffer entsprechend nach unten ver-
schieben. Unter ProDOS muß es unter-
halb von $9A00 liegen, d.h. im Bereich
$971A-$99FF, weil es sonst durch einen
Textfile-Zugriff zerstört würde. Zu diesem
Zweck muß man über die GETBUFR-Rou-
tine 3 Pages anfordern und dann das Pro-
gramm mit BRUN DOUBLE.LORES star-
ten. Aus all diesen Gründen wird HIMEM
durch DOUBLE.LORES nicht geändert.
us)
Um die neuen Applesoft-Befehle in den
Interpreter einzubinden, wurde der Am-
persand-Vektor verwendet. Er bietet eine
bequeme Möglichkeit, eigene Routinen
ohne Geschwindigkeitsverlust an den In-
terpreter anzuhängen.
Jedesmal, wenn der Interpreter auf das &-
Zeichen trifft, verzweigt er zur Adresse
$03F5, in der normalerweise ein Sprung
zu einem RTS-Befehl steht. An dieser
Stelle wird nun ein Sprung zum eigenen
Programm eingetragen.
Stößt der Interpreter auf das &-Zeichen,
so verzweigt er zum Anwenderprogramm,
das zunächst überprüft, welcher Token
vorliegt, um zu dem entsprechenden Pro-
grammsegment zu springen. Nach Aus-
führung des jeweiligen Befehls wird der
Textpointer bis zum nächsten Applesoft-
Befehl vorgerückt und DOUBLE.LORES
über einen RTS-Befehl verlassen.
Konflikte mit 40/80-Z/Z
Es empfiehlt sich, vor Aktivierung der
Double-Lores die 80-Zeichenkarte mit
„PRINT CHR$(21)“ oder „ESC Ctrl-Q"
abzustellen, um Speicherkonflikte zu ver-
meiden und das korrekte Arbeiten des
&TEXT-Befehls zu gewährleisten.
Sollten Sie keine Double-Lores-Grafik auf
dem Bildschirm sehen, kann das an Ihrer
erweiterten 80-Zeichenkarte liegen. Ent-
weder Sie besitzen eine Nachbau-80-Zei-
chenkarte, die nicht über die entsprechen-
den technischen Möglichkeiten verfügt,
oder die Karte ist nicht korrekt installiert.
Lesen Sie dazu das entsprechende Kapi-
tel im Handbuch zur 80-Zeichenkarte.
Bei gemischter Darstellung (Text und Gra-
fik) beachten Sie bitte folgendes:
34
DOUBLE.LORES
931A:
9316:
931F:
9321:
9324:
9326:
9329:
9324:
932C:
932E:
9330:
9332:
9334:
9336:
9338:
933A:
933C:
933E:
934Ø:
F5 Ø3
F6 Ø3
OMSDANANGUNKE
ORG
*
*
*
*
*
*
*
DH Tokens
*
TPLOT EQU
TGR EQU
THLIN EQU
TVLIN EQU
TSCRN EQU
TTEXT EQU
TO EQU
AT EQU
*
$931A
Double-Lores 1.0
K.-W. Bott, 1985
$8D
$88
$8E
$8F
$D7
$89
$C1
$C5
D Applesoft-Routinen
*
AMPER EQU $Ø3F5 : Ampersand-Vektor
TABV EQU $FB5B ;Cursor vertikal tabulieren
CLRTOP EQU $F836 :Lores-Schirm löschen
PLOT EQU $F8ØØ :Block plotten
SCRN EQU $F871 ;Lores-Screen-Befehl
CHRGET EQU $ØØB1 ‚Zeichen aus BASIC
GETBYT EQU $E6F8 ‚Byte aus BASIC
SYNCHR EQU $DEC® Zeichen im AREG
* ‚mit BASIC vergleichen
SNERR EQU $DEC9 ; "SYNTAX ERROR"
ILQUAN EQU $E199 ;"ILLEGAL QUANTITY"
PTRGET EQU $DFE3 ;Pointer auf Variable
D ‚aus BASIC-Text
SNGFLT EQU $E3Ø1 : YREG -> FAC
D
* Konstanten
*
PAGE1 EQU $C054 ;Hauptspeicher
PAGE2 EQU $CØ55 ;Zusatzspeicher
CHAR EQU $B8 :aktuelles Zeichen im
* ;BASIC-Text
POINTER EQU $CE ‚Zeiger für Puffer
VARNAM EQU $81 Letzte BASIC-Variable
SUBFLG EQU $14 ‚Flag für Var.-behandlung
FAC EQU $9D ;Float.-Akkumulator
WNDTOP EQU $22 ;obere Begrenzung des
* :Scroll-Windows
*
* Speicherplatz für Koordinaten
*
xl EQU $Ø6
X2 EQU $97
Yl EQU $Ø9
Y2 EQU $E3
XS EQU $D7 ;Schrittweite X
YS EQU $EB ;Schrittweite Y
XD EOU $CF ‚Differenz Xl - X2
YD EQU $EF ‚Differenz Yl - Y2
E?
E?
* Ampersand-Vektor linken
*
START LDA #$4C : JMP
STA AMPER
LDA #<LINK
STA AMPER+1
LDA #>LINK
STA AMPER+2
RTS
*
* Einsprung für jeden Ampersand-
* Befehl; Token im A-Register
*
LINK CMP #TGR
BEQ GR
CMP #TTEXT
BEQ TEXT
CMP +TPLOT
BEQ JPLOT
CMP #THLIN
BEQ HLIN
CMP +TVLIN
BEQ JVLIN
CMP #TSCRN
BEQ JSCRN
Peeker 8/85
1. Ein &PLOT-Befehl über die 39. Grafik-
zeile hinaus druckt ein Zeichen in die un-
teren vier Textzeilen.
2. Die erweiterte 80-Zeichenkarte sollte
vor Aktivierung der Double-Lores-Grafik
eingeschaltet sein und eingeschaltet
bleiben.
3. War die 80-Zeichenkarte aktiviert, so ist
der TEXT-Befehl zum Zuruckschalten zu
verwenden, ansonsten &TEXT.
Bei reiner Grafikdarstellung ist folgendes
zu berücksichtigen:
1. Benutzen Sie die oben erwähnten
POKE- und CALL-Befehle, um die unteren
vier Zeilen für Grafik freizuhalten.
2. Jeder PRINT-Befehl druckt Zeichen in
den Bildschirmspeicher, die als Farbblök-
ke auftreten.
3. Selbst ein GET-Befehl erzeugt einen
farbigen Block, da der Cursor sichtbar
wird. Um dies zu vermeiden, kann die
Eingabe eines Zeichens von der Tastatur
z.B. wie folgt vorgenommen werden:
10 ON PEEK (49152) < 128 GOTO 10:A$
= CHR$ (PEEK (49152) - 128):
POKE 49168,0
4. Für das Zurückschalten gilt das gleiche
wie oben.
Das Programm DOUBLE.LORES.DEMO
zeigt eine Anwendung der neuen Befehle
und die Umschaltung auf reine Grafik-
Ausgabe. =
` yonsAor
-uey !ISMZ UOA gnjyosuy WNZ LHOdAOP
` dnyoeg `n WVH Lw (1289) pieO-VId Sp GAV
` dnyoeg `n WVH Lw (2299) pieO-VIA ‘az GAV
` Mat ‘08Z
ayn EL-OL Ee
` (eqnedwoy-eiddy "ët 'OƏd-II NOSIN
- "IQ “yn 81-21 Ou :JNBYUEAUSPET
` d 9S dd 9V31
YINMSHOS UƏYIIƏZ 08
"ISMN "MU! "MOIS oid ƏSIÐId
` ZEZ SU 'SOINOHLN3D 'WOUdA “Yd
` WIIG jequedwoy-ejddy 9811 Ob ‘E01 AAT
` yoyedoyny FCO 19llonuoO-Iud-1
` ƏSƏ] JYƏS Sq JIL 08 S9r VS Meßnys
uonynpoid aySINEp pusyaßbyam
JOv4UAILNI 3 TddV
(Ine»EAuepe SIM) EOELEEB-0EO uojəle L
“un 81-51 'OG
0802 VAL
00 LOHPZ
00 S1r¿
Ndo v08Z
SUNGZ-9GZLCZ
SUNSGZ-8Z LLC
SUNSZ-v9LZ
SUOSP-ZEZZ
SUOSP-9LZZ
SU0SF-8022
(9102 WYS) E41 9119
G861 `S 62 PULIS
ITILNISTM
yuq JOH WW G (37
JOH wu 8 q37
DIS OL Ileysedns JOH wwg (37
SLO 993 H$ WNL
4eJOIMV v9LD YSN
su0SL-#9Lr Adn
su00Z-9L Lt Adn
jayejsusßueyy pun ejaneg oe
Gy umag 0001 : Z4 6əwuəzinuocsəpiue9 - 19q10M OS YUEL `L
yuq qjəÐ `o ung ww s q31
a OsOIW-aNOlSSWSL 9
WO OS Li NN !8q ‘YA Jepo NN Jed puesion
wa —'g 6 osz siq :BurmpedugA pun OOd NO —'01 + Isuos ‘wa
—'0S UƏMISISƏQISƏPUIW `V Su
Peeker 8/85
SNERR
SPLOT
VLIN
SCREEN
Double-Lores initialisieren
und Bildschirm löschen
LDA
LDA
LDA
STA
STA
LDA
LDA
STA
LDA
JSR
J k ÅÅÅ
STA
STA
LDA
LDA
LDA
.LDA
STA
JMP
&HLIN X1,
Apple und IBM
kompatible Computer
16K, Z80, Diskcontroler je ................... 110,-
80 Zeichenkarte mit Softswitch
2 Zeichensåtze ................................ (EL)
Motherboard 48K ohne
EG een 610,—
Erphi-controler mit Autopatch .............. 300,—
Siemenslaufwerk F 122 ....................... 515,-
Philips X3134 2x80 Track ................... 465,-
TEAC FD-55B 2x40 Track ................... 468,—
TEAC FD-55F 2x80 Track ................... 565,-
Neu: Stardrucker SG 10............. 920,—
Monochrome Monitore .................... ab 375,-
Ié rei ine ab 998,—
Tastaturen für IBM und Apple ........ ab 330,—
Versand nur per Nachnahme oder Vorkasse
Weiteres Zubehör für Apple und IBM gegen
frankierten Rückumschlag.
Preissenkung:
128K Karte (Saturn kompatibel) .... 395,—
Zusatzkarten und Motherboard ausnahmslos
deutsche Fertigung mit ausgesuchten Bauteilen.
Ulf Mohwinkel Electronic
Berliner StraBe 73
5090 Leverkusen Fettehenne
Telefon 0214/937 81
$CØ5Ø
$CØ56
$CØ53
$CØØ1L
$CØØD
$C@5E
#2Ø
WNDTOP
+23
TABV
PAGE2
CLRTOP
PAGE1
CLRTOP
CHRGET
in den Textmodus
$CØØØ
$CØØC
$CØSF
$CØ51
PAGE1
+Ø
WNDTOP
CHRGET
X2 AT Y
CHRGET
GETBYT
+80
ERROR
APPLE //e
m 80 gestochen scharfe und flimmerfreie Zeichen / Zeile
m plus zusåtzliche 64 KByte schnelle dynamische RAM's
m ermöglicht Double Hires Graphik ( 560 * 192 Punkte )
m vergoldete Steckerleiste und Qualitåtsbauteile
Geprüfte Platine + Demo Disk + Beschreibung DM 174,50
Bausatz DM 145 .- W Leerplatine + Bauanleitung DM 59.-
Ab Lager lieferbar. Alle Preise inklusive Mehrwertsteuer.
DOBBERTIN
INDUSTRIE-ELEKTRONIK
Brahmsstraße 9, 6835 Brühl, Tel. (06202) 71417
: GRAFIK
; LORES
;MIXSET
; SØSTORE
; SØCOL
ANA
:Scroll-Window begrenzen
:Cursor in Zeile 23
‚setzen
:Zusatzspeicher löschen
‚Hauptspeicher löschen
:Textptr. vorrücken
‚und Return nach BASIC
; 4ØSTORE
; 4ØCOL
; ANS OFF
; TEXT
:volles Scroll-Window
;Txtptr. ink. —> BASIC
; TXTPTR vorrücken
‚Param. Xl aus BASIC-Text
:X1 > 79?
APPLE //e
— APPLE IL
"und kompatible Computer
Universeller EPROM-Programmer 4003
m Programmiert alle gängigen EPROM-Typen (z.B.: 2716,
2732,-64,-128,2508,-16,-32,-64...) Voll menügesteu-
erte Software auf Diskette mH Kein Schalten, Löten oder
Stecken nötig & Programmierspannung wird im Gerät er-
zeugt m Verbindung zum Rechner über Flachbandkabel 8
Rote und grüne Leuchtdiode zur Betriebsart-Anzeige Æ
Komplett mit 28 poligem Textool-Sockel 8
Fertiggerät DM 269,50 m Bausatz + Anleitung DM 219.-
80 Zeichen Karte
+64 KByte RAM
35
DC
S8/8 194994
ERROR JMP
`
* &VLIN Y1,
*
`
VLIN JSR
JSR
CPX
BCS
STX
LDA
JSR
JSR
CPX
BCS
STX
LDA
JSR
JSR
CPX
BCS
STX
STX
JSR
LDA
RTS
U Å
CREEN JSR
JSR
*
LDA
JSR
JSR
LDA
LSR
BCC
LDX
BCS
LDX
TAY
LDA
JSR
JSR
&SCRN (VAR,
X1
#','
SYNCHR
GETBYT
LINPLOT
PAGE1
ILQUAN
Y2 AT X
CHRGET
GETBYT
+48
ERROR
Y1
#','
SYNCHR
GETBYT
+48
ERROR
Y2
+AT
SYNCHR
GETBYT
+80
ERROR
Ki
x2
LINPLOT
PAGE1
X, Y)
CHRGET
GETADR
a.
SYNCHR
GETVAL
xl
S2
PAGE1
OKAY
PAGE2
Yl
SCRN
GIVBACK
; Komma?
;Param. X2 aus BASIC-Text
32 > 797
ea.
;Param. Y aus BASIC-Text
"Ý > 47%
;Linie plotten
:sicher ist sicher ...
¿zurück zu BASIC
;Txtptr. vorrücken
:Param. Y1 aus BASIC
syl > 47?
;Komma?
:Param. Y2 aus BASIC
42 > 477
«TATT
"baran X aus BASIC
SE > 79
:Linie zeichnen
¿zurück zu BASIC
Farbwert des Blockes X, Y bestimmen
und in BASIC-Variable übertragen
;Txtptr. vorrücken
"Adr. und Typ der
‚Variablen feststellen
;Komma?
:Werte X, Y aus BASIC
;A = A / 2
;gerader Wert -> PG2
‚ungerade -> PG1
;X -> YREG
;Y -> AREG
;Farbe im AREG
;Farbcode der Variablen
9415:
9418:
941B:
941E:
942Ø:
9422:
9424:
9426:
9429:
942C:
942E:
943Ø:
9432:
9434:
9437:
9439:
943A:
943C:
943D:
9440:
9442:
9444:
9446:
9448:
9449:
944B:
944C:
944E:
9451:
9454:
9457:
9458:
945B:
945D:
945F:
9461:
9463:
9466:
9469:
946B:
946D:
946F:
947Ø:
AD
4C
54
Bl
Bl
00
B8
cl
ØE
58
73
øp
B8
Cl
20
B1
SA
2C
54
F8
50
11
06
2C
cø
F8
30
03
09
99
cØ
00
00
94
94
ØØ
94
94
94
cø
EG
DE
E6
El
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
Ca
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
LDA
JMP
* * *
æ &PLOT Xl, Yl TO X2, Y2
`
*
SPLOT JSR
LDX
LDA
CMP
BEQ
JSR
JSR
D
PLOTTO LDX
LDA
CMP
BNE
D
CTO JSR
*
* Neue Param.
*
LDA
PHA
LDA
PHA
JSR
LDA
STA
LDA
STA
PLA
STA
PLA
STA
JSR
JMP
EXIT LDA
RTS
PAGE1
CHRGET
CHRGET
+Ø
( CHAR, X)
+TO
CTO
GETVAL
EXPLOT
+Ø
(CHAR, X)
+T0
EXIT
CHRGET
‚zuordnen
;Txtptr. vorrücken
¿Return nach BASIC
;Txtptr. vorrücken
"keine Param. holen
;Punkt plotten
"kein 'TO' -> Ende
;Txtptr. vorrücken
holen und Xn, Yn <--> Xn+1, Yn+1
Xl
Xl
LINPLOT
PLOTTO
PAGE1
;Linie plotten
.. zum Anfang
;—> BASIC
GETVAL holt die X- und Y-Parameter
D
D
* aus dem BASIC-Text
*
G
ETVAL JSR
CPX
BCS
STX
LDA
JSR
JSR
CPX
BCS
STX
RTS
D
FEHLER JMP
`
GETBYT
+80
FEHLER
x]
`
SYNCHR
GETBYT
#48
FEHLER
Yl
ILQUAN
;Byte holen
X > 797
;Syntax ok.?
;Byte holen
Ý > ÆTT
* EXPLOT plottet einen Punkt mit
* den Koordinaten X1, Yl auf dem
S8/8 1949Əd
ZE
* Double-Lores-Schirm 94D7: FØ 17 332 BEQ NOCOR2 ; ETERM = Ø
* 94D9: 18 333 CLC
EXPLOT LDA X1 ;X —> AREG 94DA: A5 Ø6 334 LDA X1
LSR ;X = X / 2 94DC: 65 D7 335 ADC XS ;X1 = X1 + XS
BCC ;gerade -> Zusatssp. 94DE: 85 Ø6 336 STA Xl
LDY 94EØ: 38 337 SEC
BCS 94E1: A5 CF 338 LDA XD
LDY 94E3: E5 EF 339 SBC YD
TAY ;X —> YREG 94E5: ØA 34Ø ASL
LDA :Y —> AREG 94E6: 18 341 CLC
JSR ;Block plotten 94E7: 6D A9 95 342 ADC ETERM
LDA 94EA: 8D A9 95 343 STA ETERM ;ETERM = ETERM + 2 * (XD - YD)
RTS 94ED: 4C FA 94 344 JMP LAB3
* 94FØ: A5 CF 345 NOCOR2 LDA XD
* LINPLOT plottet eine Linie 94F2: ØA 346 ASL
* zwischen zwei Punkten 94F3: 18 347 CLC
* 94F4: GD A9 95 348 ADC ETERM
LINPLOT LDA zl 94F7: 8D A9 95 349 STA ETERM ;ETERM = ETERM + 2 * XD
STA XS = 94FA: 18 350 LAB3 CLC
STA YS = 94FB: A5 EB 351 LDA YS
94FD: 65 Ø9 352 ADC Y1
SEC 94FF: 85 Oo 353 STA Yl ;Yl = Yl + YS
LDA 95Ø1: 4C CC 94 354 JMP LOOP2
SBC 9504: 4C 73 94 355 READY2 JMP EXPLOT
STA ; 356 *
357 * BRENSENHAM-Algorithmus XD >= YD
SEC 358 »* hier ETERM eine 16-Bit-Signed-Number
LDA Y2 359 *
SBC Yl 9507: A5 EF 360 DDA LDA YD
STA YD ; YD Y2 — Y1 9509: 8D AB 95 361 STA TMP
950C: A9 og 362 LDA #9
Setzen der Schrittweite für Liniengenerator 95ØE: 8D AC 95 363 STA TMP+1
9511: ØE AB 95 364 ASL TMP
BIT XD 9514: 2E AC 95 365 ROL TMP+1
BPL LAB1 9517: 38 366 SEC
BIT YD 9518: AD AB 95 367 LDA TMP
BMI CASE1 DX < Ø & DY < Ø 951B: E5 CF 368 SBC XD
BPL CASE2 ;DX < Ø & DY >= Ø 951D: 8D A9 95 369 STA ETERM
BIT YD 9520: A9 ØØ 37Ø LDA +Ø
BMI CASE3 ;DX DY < Ø 9522: E9 ØØ 371 SBC +Ø
BPL FERTIG ;DX DY >= Ø 9524: 8D AA 95 372 STA ETERM+1 ;ETERM = 2 * YD — YX
CASE1 JSR MIYS :YS 9527: A6 CF 373 LDX XD ;XREG = Zähler
CASE2 JSR MIXS ;XS 9529: E8 374 INX
JMP FERTIG 952A: CA 375 LOOP DEX
CASE3 JSR MIYS ; YS 952B: FØ 5D 376 BEQ READY1 ;Linie fertig
* 952D: 2Ø 73 94 377 JSR ` EXPLOT PLOT (X, Y)
FERTIG LDA XD 9530: AD AA 95 378 LDA ETERM+1
CMP YD 9533: 3Ø 39 379 BMI NOCOR
BPL DDA ;XD >= YD 9535: DØ Ø5 389 BNE MARK
* 9537: AD A9 95 381 LDA ETERM
* BRENSENHAM-Algorithmus fir YD > XD 953A: FØ 32 382 BEQ NOCOR
* (Modifizierter Digital-Differential-Analyzer DDA) 953C: 18 383 MARK CLC
H 953D: A5 09 384 LDA Y1
LDA XD 953F: 65 EB 385 ADC YS
ASL 9541: 85 Ø9 386 STA Yl ;Yl = Yl + 1
SEC 9543: 38 387 SEC
SBC YD 9544: A5 EF 388 LDA YD
STA ;ETERM = 2 * YD — XD 9546: E5 CF 389 SBC XD
LDX YD 9548: 8D AB 95 399 STA TMP
INX ;Schleifenzähler initialisieren 954B: A9 ØØ 391 LDA +Ø
DEX 954D: E9 ØØ 392 SBC #Ø
BEQ READY2 ;Linie fertig? 954F: 8D AC 95 393 STA TMP+1
JSR EXPLOT 9552: ØE AB 95 394 ASL TMP
LDA ETERM 9555: 2E AC 95 395 ROL TMP+1
BMI NOCOR2 ; ETERM >= Ø 9558: 18 396 CLC
gE
S8/8 19499d
00
14
E3
CE
CF
81
ØA
82
ØC
Øl
FF
02
95
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
FF 95 461
READY1
+
MIYS
* * H * *
GETADR
CLC
ADC
STA
LDA
ADC
STA
CLC
LDA
ADC
STA
JMP
JMP
LDA
STA
LDA
EOR
CLC
ADC
STA
RTS
LDA
STA
LDA
EOR
CLC
ADC
STA
RTS
HEX
HEX
HEX
HEX
LDA
STA
JSR
STA
STY
LDA
BMI
LDA
BMI
LDA
STA
RTS
LDA
STA
ETERM + 2 * (YD — XD)
ETERM
ETERM
ETERM+1
+Ø
ETERM+1 ETERM + 2 * DY
XS
X1
X1
LOOP
EXPLOT
#$FF
YS
YD
4%11111111
+l
YD ; ABS (YD)
+$FF
xs
XD
#711111111
+1
XD :XD = ABS (XD)
00 ;Error-Term für DDA
00
00 :Hilfsspeicher für 16-Bit-Mult.
ØØ
Adresse für Variable, die den Farbcode
erhalten wird, feststellen und
Variablentyp (Real, Integer) bestimmen
+Ø
SUBFLG ; Subscript auf Ø
PTRGET :Adr. der Variablen
‚feststellen
POINTER
POINTER+1
VARNAM ‚ergibt Variablentyp
INTAl
VARNAM+1
TYPERR ‚es war ein String!
+1
TYPFLG ;Real-Variable
+2 ;Integer-Variable
TYPFLG
RTS
x
95CC: AD 54 CØ 464 TYPERR
95CF: 4C C9 DE 465
LDA PAGE1
JMP SNERR
466 *
467 * Wertzuweisung der BASIC-Variable mit Farbcode
468 »* im A-Register
469 *
95D2: 48 470 GIVBACK PHA :Farbwert retten
95D3: AD FF 95 471 LDA TYPFLG
95D6: C9 Øl 472 CMP +l
95D8: BEQ REAL1 ;Real-Var.
95DA: 68 475 PLA
95DB: AØ 01 476 LDY #1
95DD: 91 CE 477 STA (POINTER),Y ;High-Byte
95DF: A9 PP 478 LDA #Ø |
95El: 88 479 DEY
95E2: 91 CE 48Ø STA (POINTER),Y ;Low-Byte
95E4: 6Ø 481 RTS
95E5: 68 483 REAL1 PLA
95E6: A8 484 TAY
95E7: 2Ø Øl Eš 485 JSR SNGFLT ; YREG -> Float — FAC
95EA: AØ Ou 486 LDY #9
95EC: B9 9D ØØ 487 REAL2 LDA FAC,Y ;FAC -> Var.
95EF: 91 CE 488 STA (POINTER),Y
95F1: C8 489 INY
95F2: CØ Op 490 CPY #5
95F4: DØ F6 491 BNE REAL2
95F6: A5 9E 492 LDA FAC+1
95F8: AØ 01 493 LDY +1
95FA: 29 7F 494 AND #7Ø1111111 ;SIGN auf +
95FC: 91 CE 495 STA (POINTER),Y
95FE: 60 496 RTS
497 *
95FF: ØØ 498 TYPFLG HEX ØØ
742 Bytes
DOUBLE.LORES.DEMO
1Ø PRINT CHR$ (21): PRINT CHR$ (4) "BRUN DOUBLE. LORES"
15 REM DOUBLE.LORES.DEMO zeichnet eine Kugel
2Ø TEXT : GOSUB 85
25 XE = 79:YE = 47:A = XE / 2:B = YE / 2:F1 = 7:F2 = 23
3Ø FOR C = 1 TO 15: COLOR= C:R = C + C
35 FOR X = A — R TO A + R: IF X < Ø OR X > XE GOTO 60
40 H = R * R — (X — A) * (X - A): IF H < = GOTO 60
45 Yl = B + SQR (H) - F1:Y2 = B — SQR (H) + Fl
50 IF Y1 > Ø AND Y1 < = YE THEN & PLOT X,Y1
55 IF Y2 > Ø AND Y2 < = YE THEN & PLOT X,Y2
60 NEXT X
65 NEXT C
7Ø GET X$
75 & TEXT : HOME : END
8Ø REM Umschaltung auf Full-Screen
85 & GR : POKE 49234,Ø
86 POKE 49236,Ø: CALL 63538
87 POKE 49237,ø: CALL 63538
9Ø RETURN
Betriebssystem CP/M
Vom Monitorprogramm zum
Mehrbenutzersystem.
Von Jürgen Plate.
1984, 351 Seiten, 30 Abb.,
3 Tab., geb., DM 56,-
Das Buch beschreibt ausführ-
lich die Kommandos, ihre
genaue Syntax und die einzel-
nen Teilprogramme von CP/M
wie BIOS (systemspezifischer
Teil), ED (Editor), ASM (Asem-
bler, inklusive einer Beschrei-
bung des 8080-Befehlssat-
zes), SYSGEN und STAT.
Der Beschreibung von CP/M
ist das Listing eines komfor-
tablen Monitorprogramms für
Z-80-Computer vorangestellt,
das eine elementare Program-
mierung auf Maschinenebene
erlaubt, solange man CP/M
noch nicht geladen hat. Das
kann z. B. zur Fehlersuche
sehr nützlich sein. Am Schluß
des Buches findet sich auch
eine Kurzbeschreibung der
Multitasking-/Multiuser-
Betriebssysteme.
Das Buch zum Apple Il
von Erich Esders
1985, 210 S., 119 Abb., geb,
DM 54,—
Froris
Gomputer- Praxis
Das Buch zum Apple-ll
Wenn hier vom Apple II
gesprochen wird, so gilt das
auch für den Ilplus, den lleuro-
plus und die lle-Versionen
sowie für den ganzen ,Apple-
Nachbau“. Das Buch ist ein
Wegweiser durch diesen
Rechner, um mit ihm schneller
und effektiver zu arbeiten. Es
geht hier weniger um das ele-
mentare Programmieren des
Peeker 8/85
Rechners, sondern um
Assemblerprogramme, die
extensiv Monitor-ROM-
Subroutinen benutzen. Diese
hat der Autor nach Sach-
gebieten geordnet, z. B.
Mathematik, Graphik, String-
Bearbeitung + Disassembler-
Listings und diese wiederum
mit Erklärungen und Applika-
tionen komplettiert. Eine aus-
reichende Dokumentation ist
dabei immer gewährleistet. Sie
geht schrittweise vor, von der
Aufgabenstellung über die
Programmentwicklung bis zum
lauffähigen Maschinenpro-
gramm. Die angebotenen Bei-
spiele sind ausbaufähig und
lassen der eigenen Kreativität
reichlichen Spielraum. Viele
neuartige Tips und Tricks wird
auch der beschlagene Apple-
Benutzer begrüßen.
Aus dem Inhalt:
Der Mikroprozessor des
APPLE Il. Der APPLE Il und
seine Speicheraufteilung.
APPLESOFT und seine
Arbeitsspeicher-Bereiche. Der
MICROSOFT-Basic-Inter-
preter: Die Zeichen-Lese-
Routine. Interpretierer und
Lokalisierer. Handler-Routi-
nen. BASIC/Maschinen-
sprache-Interfaces.
DISAS-Generator. Unterpro-
gramme im APPLESOFT-
Basic-Interpreter: Softschalter
und -Flags. Ausdrucks-Inter-
pretierer. Low-Resolution-
Graphik. Fehler-Behandlung.
Applikationen: Arithmetik-
Demonstration „FP-CALC“.
Hex-Dumps der Applikationen.
BASIC-Monitor BASMON/D:
Vorstellung der neuen Kom-
mandos. Das Programm
„BASMON/D“. Implementie-
rung und Laufbeispiele.
BASIC-Interpreter-Vergleich
APPLE II - Commodore 64:
Arithmetik-Demonstration
„FP-CALC/64“. Listen: Die
Token des APPLESOFT-Basic.
Apple II ROM Listing
von Matthias Buck
1984, 116 S., Kart., DM 59,-
«apple II
H, He, He, He
Lis tin g
| | tür Appleroft - BASIC -
Interpreter
von Matthias Buck
x MIKROCOMPUTER
Das deutsche Apple-II-ROM-
Listing ist da!
Einleitung zum prinzipiellen
Ablauf des Applesoftinter-
preters:
@ Aufbau und Verarbeitung
der/des Programmtextes —
Variablentabelle — String-
space - FlieBkommaformate
— Basicstacks (GDSUB,
FOR-NEXT, ...)
@ Beschreibung der wichtig-
sten Unterprogramme, z. B.
Variablensuche, Garbage
collection, Ausdrucksaus-
wertung, CHRGET, ...
€ Vollständig disassemblierte
und sehr ausführlich
deutsch kommentierte Auf-
listung des Applesoft-
BASIC-Interpreters
@ Übersichtliche Auflistung
aller vom Interpreter benutz-
ten RAM-Zeilen mit allen
Verwendungszwecken
@ Über 150 ausführlich doku-
mentierte Unterprogramme:
— Funktion
- Ein/Ausgabeparameter
Auch für Apple Je und c und
Kompatible!
Apple Il Pascal
Eine praktische Anleitung
von Arthur Luehrmann und
Herbert Peckham
1982, 544 S., kart., DM 59,-
APRE =
PASCA `
Dieses Buch ist unentbehrlich
für alle, die die Programmier-
sprache PASCAL lernen
wollen und Zugang zu einem
Apple Computer haben.
Sie benötigen keinerlei Vor-
kenntnisse, sondern lernen an
Hand von Beispielen und
Übungen, wie man selbst
PASCAL-Programme entwik-
kelt und sie austestet und
werden allmählich von Kapitel
zu Kapitel vertrauter im
Umgang mit dem Apple
Computer.
Start mit Apple-Logo
für II, lle und lic
Das kleine Logo-Einmaleins:
Grafik = Text * Musik
Von D. Senftleben
1985, 222 Seiten, DM 35,-
Viele Mikrocomputer-Her-
steller bieten får ihre Geråte
neben BASIC und anderen
Programmiersprachen
zunehmend auch Logo an.
Durch ihre Benutzerfreund-
lichkeit hat diese Sprache
bereits viele Freunde im
Ausbildungs- und Freizeitbe-
"Dietrich Senitleben.
Start mit
reich gefunden. Dabei ist
Logo eine måchtige
Sprache, die auch dem
anspruchsvollen Anwender
kaum Wünsche offenläßt.
Mittels Schildkrötengrafik
wird das kleine Logo-Einmal-
eins in 12 Lektionen entwik-
kelt. Große Bildschirmfotos
begleiten den Leser durch
die Lektionen. Das Buch ver-
langt aktive Mitarbeit. Es hat
seinen Platz neben dem
Computer und gibt Hilfen
und Anregungen für eigenes
Forschen. Dank des bau-
steinorientierten Konzepts
kann jeder seine eigenen
Teilbausteine erzeugen und
sie zu neuen Blöcken
zusammenfügen. Neben
dem Einmaleins werden
neue Einsatzbereiche für
den Einsteiger erschlossen.
Musik und Sound fehlen
nicht.
In diesem Buch werden die
beiden offiziellen Logo-Pro-
dukte der Firma Apple für die
Rechnerfamilie Apple Il, Ile
und llc behandelt und deren
Unterschiede verdeutlicht.
Weiterhin sind sämtliche
Apple-Logo-Vokabeln über-
sichtlich zusammengestellt.
Dieses Buch ist ideal zum
problemlosen und vergnüg-
lichen Start in die Apple-
Logo-Welt.
Apple Il
Anwenderhandbuch
von Lon Poole
1982, 450 S., zahlr. Abb.,
kart., DM 56,-
Auch für diesen Computer
haben wir den richtigen Leit-
faden. Er erspart Ihnen zeit-
raubendes und nutzloses
Suchen nach der wirklich
verwendbaren Dokumenta-
tion für Ihren Computer. Das
Anwenderhandbuch
beschreibt zum einen den
beliebten Apple II-Computer
als solchen und gibt zum
anderen ausführlich Aus-
kunft über die normalen
Peripheriebausteine und
Zubehör einschließlich Disk-
Laufwerken und Drucker. Mit
Hilfe dieses Buches werden
Sie Ihren Apple Il erfolgreich
einsetzen, denn der Informa-
tionsgehalt geht weit über
das hinaus, was hersteller-
seitig an Literatur angeboten
wird. Sie lernen BASIC auf
zwei verschiedene Arten zu
verwenden. Wie man den
Gebrauch von Klang, Farbe
und Grafik zum Optimum
führt. Sie erhalten Tips für
fortgeschrittene Programm-
erstellung. Sie erfahren die
Verwendung des Maschi-
nensprachen-Monitors
u.v.m. Mit dem Apple ll-
Anwenderhandbuch werden
Ihnen alle Möglichkeiten
eröffnet, die in diesem Com-
puter stecken.
Apple Il Pascal
1985, 197 S., DM 39,-
Kosa. š
ui
Apple II Pascal
Betriebssystem
1985, 256 S., DM 49,-
AMEI
D: C A!
k DA `
f $ ` k. RR: A? i
kh B ` An
Betriebssystem
39
von Ing. (grad.) Ernst Fischer
Ein gutes Adreñverwaltungsprogramm
(kunftig Adv genannt) sollte mindestens
folgende Anforderungen erfüllen:
Das Programm soll anwenderfreundlich
sein; es kommt also nur eine Menütech-
nik in Frage. Personaldaten müssen leicht
veränderbar sein; es sollte eine Such-
funktion nach Vorname, Familienname
und nach Bemerkungen existieren. Vor-
teil: Man findet auch Personen wieder,
deren Namen sich durch Heirat verändert
haben. Die Suchfunktion nach Bemerkun-
gen sollte es ermöglichen, auch Teilstrings
innerhalb der Bemerkung zu finden. Von
einem Adv-Programm erwartet man nicht
nur, daß es für die gespeicherten Adres-
sen Adreßaufkleber und Absender
druckt, sondern auch ein Adreßverzeich-
nis im Taschenkalenderformat ausgibt.
Schließlich müssen Datensätze leicht,
aber nicht versehentlich gelöscht werden
können. Ein gutes Adv sollte nur über ein
Passwort benutzbar sein, um es vor
nichtautorisierten Personen zu schützen.
Es interessiert den Benutzer auch, wievie-
le Datensätze gespeichert sind und wann
der letzte Zugriff war. Diese Informationen
sollten bei Beginn vom Adv ausgegeben
werden. All diese Forderungen werden
von diesem Programm erfüllt.
Als Grundlage dient die relationale
Datenbank dBASE. Einer der wesentlich-
sten Vorteile von dBASE ist die Flexibilität,
bedingt durch eine eigene Programmier-
sprache. Mit ihr läßt sich praktisch jedes
Problem lösen, wie im folgenden noch ge-
zeigt wird. Für eine sinnvolle Anwendung
40
Adreßverwaltu
programm
mit dBASE II
ist folgende Gerätekonfiguration erforder-
lich: Ein Apple Il/II+/lle oder kompatible
Nachbauten, zwei Diskettenlaufwerke, ein
Drucker und eine Z80-Karte (läuft unter
CP/M). Natürlich muß man im Besitz der
relationalen Datenbank dBASE sein. Lei-
der können Besitzer eines Apple llc die
Vorteile dieses Programms wegen der
fehlenden Slots nur mit einer teuren Zu-
satzkarte nutzen. Die Druckersteuerzei-
chen in den Unterprogrammen beziehen
sich auf Epson-Drucker.
Wichtig bei der Anwendung: Zu beachten
ist bei der Benutzung des Adv lediglich,
daß man das Programm nur über die Op-
tion 9 des Hauptmenüs verläßt. Nur so ist
gewährleistet, daß die benutzten Dateien
wieder geschlossen werden. Hält man
sich nicht an diese Selbstverständlichkeit,
kann dies zu Datenverlusten führen.
Aufbau des Adreßverwaltungspro-
gramms
Wie Bild 1 zeigt, wird der Benutzer über
den aktuellen Zustand des Adv informiert.
Es zeigt an, wieviele Adressen gespeichert
sind und an welchem Datum das Adv zum
letzen Mal benutzt wurde. Schließlich wird
der Benutzer aufgefordert, das aktuelle
Tagesdatum einzugeben. Bei einem Re-
turn wird das alte Datum übernommen.
Nachdem diese Hürde genommen ist,
wird der Benutzer aufgefordert, seine Zu-
griffsberechtigung durch ein Passwort
nachzuweisen. Das Passwort wird dabei
aus Sicherheitsgründen nicht am Bild-
dis, —
Peeker 8/85
a a
d RTN `
A AR.
d Ex N br
Nee Å í D
à <
Ki Tei
va
, úM
14 JE
>
|
Peeker 8/85
schirm angezeigt. Bei richtiger Eingabe er-
schließt sich nun erst das Hauptmenü;
man kann über die gespeicherten Daten
verfügen.
Auflistung und Funktion
der einzelnen Programme
(vgl. Bild 2)
Die Programme in Laufwerk A: haben die
Aufgabe, menügesteuet auf die
Datenbank zugreifen zu können. Außer-
dem befinden sich auf A: die Ein- und
Ausgabemaske, welche für die Datenein-
gabe, Datenausgabe und Datenverände-
rung genutzt werden. Die drei Indexdatei-
en gestatten einen sehr schnellen Zugriff
auf die Daten (maximal 2 Sekunden unab-
hängig von der Datengröße). Mit ihnen
kann man das indizierte Feld alphabetisch
ausgeben. Indizierung hat gegenüber Sor-
tierung den Vorteil, daß die Daten phy-
sisch nicht verändert werden und auch
weniger Zeit und Speicherplatz bean-
sprucht wird. Das Indexregister wird auf
Laufwerk A: angelegt, weil hier noch Spei-
cherplatz auf der Diskette zur Verfügung
steht, der bei großen Datenmengen bei
Laufwerk B: fehlen würde. In der Memory-
datei werden schließlich die aktuellen
Daten des Adv wie die Anzahl der gespei-
cherten Records und das letzte Zugriffsda-
tum abgelegt. In Laufwerk B: befindet sich
ausschließlich die Adv Datenbank, deren
Struktur später erklärt wird.
Aufbau der Datenbank
Das Adv sollte so universell wie möglich
sein und dabei alle Informationen liefern,
die beruflich und auch privat interessant
sind. Sollten für das Adv bestimmte Daten,
wie Geburtsdatum oder Vorname der Ehe-
frau zu intim sein, weil man die Person
nicht so genau kennt, so läßt man einfach
dieses Feld frei. Die Datenspeicherung er-
folgt ausschließlich auf dem Laufwerk B:.
Somit ist genügend Platz auf der Diskette.
Alle Kommandodateien, Indexregister und
der Memoryspeicher sind auf Laufwerk A:.
Für die Felder FAM, VOR und VORE ist
jeweils ein Indexregister angelegt; das
spart Zeit beim Suchen und gestattet auf
einfache Weise das alphabetische
Ordnen.
Die Datenbank wird folgendermaßen an-
gelegt: Man startet dBASE im Laufwerk A:
mit der Eingabe von „dbase“ <RETURN>
(das CP/M Betriebssystem muß natürlich
auf der dBASE-Diskette sein). Nach der
Eingabe des Tagesdatums oder einem Re-
turn meldet sich dBASE mit einem Punkt
41
als Promptzeichen. Für die Generierung
des Adv geben Sie den dBASE-Befehl
CREATE B:ADRESSEN ein. Daraufhin er-
fragt sich dBASE die Struktur der
Datensätze. Nachdem Sie das 17. Feld
eingegeben haben, schließen Sie mit RE-
TURN ab. Auf die Frage, ob Sie die Daten
jetzt sofort eingeben wollen (INPUT DATA
NOW?) antworten Sie mit „N“ (No). Damit
liegt die Struktur des Adv in Laufwerk B:
fest. Vergleiche hierzu Bild 3.
Eingabe der Kommandodateien
Die Eingabe sollte nicht mit dem dBASE-
Editor mit Hilfe des MODIFY-COMMAND-
Befehls eingegeben werden. Es hat sich
gezeigt, daß ab einer bestimmten Länge
der Programme der Editor verrückt spielt.
Statt dessen sollte die Programmeingabe
mit WordStar erfolgen. Außerdem hat man
dabei mehr Komfort.
(Anm. der Red.: Wegen des großen Um-
fangs der Kommandodateien sind alle er-
forderlichen CMD-Files mit Ausnahme ei-
nes Beispiels {Bild 5} nur auf der Peeker-
Sammeldiskette enthalten. Da diese Dis-
kette im DOS-Format beschrieben ist,
transferieren Sie die Files mit dem Pro-
gramm APDOS der CP/M-Systemdiskette
von DOS nach CP/M. Danach liest dBASE
diese Files einwandfrei.)
Beschreibung der Programmteile
START.CMD (Programmbeschreibung)
Das Programm gibt Informationen über die
Datenbank (letztes Zugriffsdatum, Anzahl
der Records usw.). Diese bezieht es zum
Teil aus dem Memoryspeicher von dBASE.
Die Datumseingabe wird auf gültige Werte
überprüft; erst dann kann im Programm
fortgefahren werden. Es erfolgt eine Über-
prüfung des eingegebenen Passwortes.
Wünschen Sie ein anderes Passwort, so
ersetzen Sie „PEEKER“ durch das Wort
Ihrer Wahl. Wird später beim Gebrauch ein
falsches Passwort eingegeben, so löscht
dBASE alle bis dahin gemachten Eingaben
vom nichtautorisierten Benutzer und kehrt
zum CP/M-Betriebssystem zurück.
Stimmt das eingegebene Passwort mit
dem gespeicherten überein, wird das
Hauptmenü aufgerufen.
HMENUE.CMD (Programmbeschreibung)
Das Hauptmenü gestattet den Zugriff auf
die einzelnen Unterprogramme. Wird Op-
tion 9 (Ende) gewählt, so werden zuerst
alle Speichervariablen mit „RELEASE
ALL“ gelöscht. Dann wird die Datenbank
mit „USE B:ADRESSEN“ eröffnet und der
42
Zeiger auf den letzten Record gesetzt. Die
Nummer dieses Records wird im Varia-
blenspeicher „R:NR“ in den Memoryspei-
cher geladen. Danach wird mit „CLEAR“
die Datenbank geschlossen. „CANCEL“
verläßt das Hauptmenü und das dBASE-
Promptzeichen erscheint. Ersetzt man
„CANCEL“ mit „QUIT“, so kehrt man
zum CP/M-Betriebssystem zurück.
AUFNAHME.CMD
bung)
Zuerst wird die Adv-Datenbank mit „USE
B:ADRESSEN“ eröffnet und der Zeiger an
das Datenende gesetzt. Mit „APPEND
BLANK“ wird ein leerer Datensatz ange-
hängt, der dann durch den Aufruf der Auf-
nahmemaske gefüllt wird. Die WHILE-
Schleife wird solange durchlaufen, bis
man die Frage „Weitere Eintragungen?“
mit „N“ beantwortet. Hat man die Eingabe
durch „N“ abgebrochen, so werden drei
Indexdateien angelegt; eine für den Fami-
liennamen, eine für den Vornamen der
Eingabeperson und eine für den Vorna-
men von Ehefrau/Ehemann. Mit „CLEAR“
wird die Datenbank geschlossen.
(Programmbeschrei-
AUFMASKE.CMD
bung)
Die Aufnahmemaske dient zur einfachen
und übersichtlichen Eingabe der Personal-
daten. Dieser Programmbaustein wird
auch bei Veränderung der Personaldaten
genutzt. Das Programm erzeugt den Bild-
schirmausdruck von Bild 4.
(Programmbeschrei-
AUSGABE.CMD
bung)
Die Ausgabemaske (AM) ist im Prinzip
genauso wie die Eingabemaske (EM) auf-
gebaut. Der Unterschied ist folgender: Bei
der EM mußten ja die Daten in die Spei-
chervariablen eingelesen werden; deshalb
die ,GET"-Befehle. Bei der AM werden
die Speichervariablen aber auf den Bild-
schirm gegeben. Hier also keine „GET“-
Anweisung, sondern „SAY“-Anweisun-
gen. Der Cursor bleibt sofort auf der letz-
ten Zeile (hinter J/N) stehen; man braucht
sich nicht mit Return bis zur letzten Zeile
vorarbeiten.
(Programmbeschrei-
SUCH.CMD (Suchprogramm)
Das Suchprogramm sucht, wie sein Name
es vermuten läßt, nach einem bestimmten
Datensatz, wenn der Familienname oder
ein Teil davon bekannt ist. Die WHILE-
Schleife wird solange durchlaufen, wie der
vorhandene Datensatz 0 und somit noch
nicht gefunden ist. Ist der Zeiger am Ende
der Datei, erscheint die Meldung, daß es
diese Person nicht gibt. Man hat die Mög-
lichkeit, mit Return die Suche abzubre-
chen oder, nachdem man den Namen der
gesuchten Person neu eingegeben hat,
einen neuen Suchvorgang zu starten.
SUCH.CMD wird in folgenden Komman-
dodateien verwendet:
- EDITFNAM.CMD
- SUCHFNAM.CMD
- SCHREIBA.CMD
- LOESCH CMD
EDITFNAME.CMD
bung)
Dieses Programm erlaubt Änderungen
von Datensätzen. Nach der Eingabe des
Familiennamens (optional auch zusätzlich
des Vornamens) sucht dBASE in der In-
dexdatei den gewünschten Namen. Ver-
läuft die Suche negativ, erscheint eine ent-
sprechende Meldung. Der Benutzer hat
die Möglichkeit, beliebig oft die Namens-
eingabe zu wiederholen oder durch ein
Return zum Hauptmenü zurückzukehren.
Wurde auch der Vorname eingegeben, so
erfolgt nun mit „LOCATE“ die Suche nach
dem Datensatz, der beide Kriterien erfüllt
(Vor- und Familienname). Die „FIND“-An-
weisung dient dabei zum schnellen Finden
des Familiennamens. Da davon auszuge-
hen ist, daß verschiedene Personen den
gleichen Familiennamen haben, ist es
zweckmäßig, auch den Vornamen einzu-
geben. Mit dem LOCATE-Befehl wird
dann die Person sicher gefunden. Die Auf-
nahmemaske erlaubt dabei eine bequeme
Veränderung der Daten.
(Programmbeschrei-
SUCHFNAM.CMD
bung)
Will man sich die Daten einer Person kom-
plett am Bildschirm anschauen, so ruft
man dieses Kommandoprogramm auf.
Nachdem Sie den Familiennamen der ge-
wünschten Person eingegeben haben,
sucht das Unterprogramm SUCH.CMD
den Datensatz. Wird er nicht gefunden,
können sie mit Return abbrechen oder
einen erneuten Suchvorgang einleiten.
Die Daten werden mit der Ausgabemaske
am Bildschirm angezeigt. Beantworten Sie
die Frage „Ist dies die gewünschte Person
(J/N)" mit N(ein), so wird mit LOCATE die
nächste Person gesucht, auf welche das
Suchkriterium zutrifft. Dieses Spiel geht so
lange, bis die Person gefunden ist oder
der Datenzeiger am Dateiende angelangt
ist.
(Programmbeschrei-
SUCHVNAME.CMD (Programmbeschrei-
bung)
Manchmal weiß man von einer Person nur
den Vornamen, weil der Familienname
Peeker 8/85
sich durch eine Herat geåndert hat. Das
Programm ist åhnlich aufgebaut wie
SUCHFNAME.CMD. Wird der Vorname
nicht in der Indexdatei Beta gefunden, so
wird in der Indexdatei Gamma weiterge-
sucht. Hier sind die Vornamen der Ehe-
partner indiziert. Verlàuft die Suche auch
hier ergebnislos, so erfolgt die Meldung
„Den Vornamen XXX gibt es nicht!". Mit
Return kann man die Suche abbrechen
oder durch eine erneute Eingabe den
Suchvorgang wiederholen. Ist die ange-
zeigte Person nicht die richtige, so werden
mit LOCATE nacheinander alle Personen
mit dem entsprechenden Vornamen aus-
gegeben, bis der EOF-Marker erreicht ist.
SUCHBEME.CMD (Programmbeschrei-
bung)
Oft kommt es vor, daB man von einer
Person sowohl Familien- als auch Vorna-
men vergessen hat. Dann helfen bezüg-
lich der Person gemachte Bemerkungen
weiter. Das Programm findet auch Teil-
strings aus der Bemerkung. Ein Beispiel:
Man hat als Bemerkung „Mitglied beim
Computerarbeitskreis“ eingegeben. Als
Teilstring genügt „arbeitskreis“. Es wer-
den alle Personen nacheinander ange-
zeigt, die bei Bemerkungen den Teilstring
„arbeitskreis“ haben. Wird der Teilstring
nicht gefunden, so kann man wieder mit
Return die Suche abbrechen oder ein neu-
es Suchkriterium eingeben.
SCHREIBA.CMD (Programmbeschrei-
bung)
Zu einer Adreßverwaltung gehört auch ein
Programm, das Adressen- und Absender-
aufkleber drucken kann. Die gewünschte
Person wird mit dem schon bekannten
Suchprogramm SUCH.CMD gefunden.
Wie man aus dem Anredemenü sieht, hat
man alle erdenklichen Optionen. Wählt
man Option-Nr.1, so kann man für sich
Absenderaufkleber drucken lassen. Op-
tion-Nr.7 gestattet individuelle Anreden
wie Firma o.ä. Hat man sich für eine der
sieben Möglichkeiten entschieden, so er-
scheint die Adresse richtig formatiert auf
dem Bildschirm. Hat man sich zum Aus-
druck entschieden, wird man nach der An-
zahl der zu druckenden Exemplare gefragt
und gebeten, den Drucker einzuschalten.
Nach dem Justieren der Aufkleber kann
nach einem Return der Druck beginnen.
Die Druckersteuerzeichen sind für den
Epson FX-80 gedacht.
SCHREIBL.CMD
bung)
Eine Adreßverwaltung taugt nur etwas,
wenn man die gespeicherten Adressen
(Programmbeschrei-
Peeker 8/85
Bild 1: Aufbau des Adreßverwaltungsprogramms
Memorydatei
Aufnahmemaske
Ausgabemaske
Programminformation
Abfrage des Passwortes
Indexdateien
Schneller Zugriff auf die
Felder der Datenbank
| Laufwerk A: | Laufwerk B: |
Autor, letztes Zugriffsdatum,
Anzahl der Eintragungen,
Aktuelles Tagesdatum
Überprüfung des Benutzers
Hauptmenü
.Eingeben der Personaldaten
.Verändern der Personaldaten
.Suchen nach Familiennamen
.Suchen nach Vornamen
‚Suchen nach Bemerkungen
‚Adreßaufkleber drucken
.AdreBlisten drucken/
Adressen anschauen
.Löschen eines Datensatzes
. Ende
Datenbank
A O Q Ë GQ ON H
o
Bild 2: Auflistung der Unterprogramme des Adv in Laufwerk A:
Programmname
AD-START.CMD —>
HMENUE . CMD —>
AUFNAHME CND -->
AUFMASKE CMD -->
AUSMASKE CND -->
EDITFNAME. CMD -->
SUCHFNAME . CMD ——>
SUCHVNAME . CMD —->
SUCHBEME CND -->
SCHREIBA.CMD -->
SCHREIBL.CMD -->
LOESCH. CMD —>
SUCH. CMD ——>
Funktion des Programmes
Startprogramm, informiert über das Programm,
Recordanzahl, letztes Zugriffsdatum usw.
Erlaubt den Zugriff auf die einzelnen Unter-
programme.
Dient zur Dateneingabe; es wird eine Eingabe-
maske benutzt.
Maske zur Dateneingabe und Datenverånderung.
Maske zur Datenausgabe.
Erlaubt die Veränderung der Personaldaten; es
wird die Maske zur Dateneingabe benutzt.
Erlaubt die Suche nach einer bestimmten Person;
Als Suchkriterium dient der Familienname.
Erlaubt die Suche nach einer bestimmten Person;
Als Suchkriterium dient der Vorname.
Erlaubt die Suche nach einer Bemerkung oder
einem Teil in der Bemerkung.
Schreibt Adressenaufkleber
Schreibt Adressenlisten im Taschenkalender-
format und listet auf dem Bildschirm die
Records auf.
Löscht die Personaldaten einer Person.
Sucht nach gewünschten Datensätzen
Bild 3: Struktur der Datenbank
Feld Name Bezeichnung Type Feldbreite
L FAM Familienname C 15
2 VOR Vorname C 14
3 PLZ Postleitzahl C 4
4 ORT Wohnort C 15
5 STR Straße C 25
6 GEBD Geburtsdatum C 8
7 BEM Bemerkung C 5Ø
8 TNRP Privattelefonnr. C 6
9 VWP Vorwahl Privat C 6
10 VWAL Auslandsvorwahl C 6
43
immer verfügbar hat in Form einer Hartko-
pie. Verfugbar heiBt, immer und Uberall
greifbar. Dieser Forderung kommt das
Programm in besonderer Weise nach. Der
Ausdruck erfolgt nämlich im Taschenka-
lenderformat; auf einer Größe von 8 cm x
14,5 cm bekommt man einen Ausdruck,
den man in gebundener Form in jeden
handelsüblichen Taschenkalender ein-
schieben kann. Zu diesem Zweck schnei-
det man sich einzelne Blätter von der Grö-
Be 16 cm x 14,5 cm, die man in der Mitte
faltet und beidseitig bedrucken läßt. Die
Papierende-Erkennung des Druckers wird
automatisch abgeschaltet. Vor dem Blatt-
ende wird man aufgefordert, ein neues
Blatt einzuspannen. Es erfolgt dabei eine
automatische Zeilenberechnung, so daß
eine Adresse immer auf einem Blatt endet
und nicht ein Teil auf die nächste Seite
übernommen werden muß. Die Datenaus-
gabe wird so formatiert, daß nicht vorhan-
dene Personalien auch nicht ausgegeben
werden. Beispiel: Es ist keine Bemerkung
abgespeichert; also wird diese Zeile auf-
gerückt und die Abkürzung „Bemerk.:“
erscheint nicht. Oder: Der Vorname ist
nicht bekannt; der Familienname wird
linksbundig geschrieben.
Neben einer Hartkopie gibt dieses Pro-
gramm auch eine geordnete Übersicht der
gespeicherten Daten am Bildschirm aus.
Die Formatierung erfolgt in der gleichen
Weise wie beim Drucken.
LOESCH.CMD (Programmbeschreibung)
Ab und zu muß man seine Adreßdatei
bereinigen. Man möchte bestimmte Per-
sonen aus der Datei löschen. Das Pro-
gramm fragt nach dem Familiennamen der
zu löschenden Person. Das Suchpro-
gramm SUCH.CMD verfährt nach der uns
schon bekannten Weise und zeigt uns,
anhand der Ausgabemaske, die erste Per-
son mit diesem Namen. Ist dies nicht die
gewünschte Person, so wird mit LOCATE
die nächste Person präsentiert, auf die das
Suchkriterium zutrifft. Das Spiel geht so-
lange, bis entweder die gesuchte Person
gefunden ist, oder der Zeiger an der EOF-
Marke angekommen ist. Ist die Suche po-
sitiv verlaufen, erscheint eine deutliche
Warnung, daß die Person mit den folgen-
den Daten gelöscht wird. Man hat jetzt die
letzte Möglichkeit, den Löschvorgang ab-
zubrechen. In diesem Fall antwortet man
auf die Frage „Ist dies die gewünschte
Person zum Löschen (J/N)“ mit „N“. Ant-
wortet man mit „J“, so wird einem noch
einmal der Name der Person gezeigt, von
der soeben alle Daten gelöscht wurden.
44
El VWD Vorwahl Dienst C 6
12 TNRD Diensttelefonnr. C 8
15 NAT Nationalität (KFZ) C 2
14 VORE Vorname der Ehefrau C 14
15 GEBDE Geburtsdatum Ehefrau C 8
16 VWDE Vorwahl Dienst Ehefrau C 6
17 TNRDE Diensttelefonnr. der C 8
Ehefrau
Bild 4: Maske zur Aufnahme der Adreßdaten
Bitte geben Sie die Daten für das Adreßregister ein...
I
+ —— "T — n s ƏLH—-O— VT
! Fam.Name: Vorname: Geb.Datum:
I
! Ehefrau.................... Vorname: Geb.Datum:
I
! PLZ: Wohnort: StraBe u.Nr.:
I
! Land (Intern.KFZ-Zeichen als Abkürz.):
+———— 1/00.
! Telefon Priv. Vorwahl: Rufnr.: Auslandsvorwahl:
I
! Telefon Die. Vorwahl: Rufnr,:
I
! Ehefrau... Telefon Dienstlich Vorwahl: Rufnr.:
+———— 7 LI.
! Bemerkung:
+---- LI
! Weitere Eintragungen ? (J/N):
|
|
= + -— +4 — ze e — — + — e e e e .- H
+=+
Bild 5: Beispiel für die erste Command-Datei (AD-START.CMD)
(Die übrigen CMD-Files befinden sich auf der Peeker-Sammeldisk)
* DO START.CMD (Startet das Adv)
ERASE
SET TALK OFF
RESTORE FROM MEMORY
STORE CHR (15) TO INVERSE
STORE " " TO ZGBER
STORE F TO OK
S 23,0 SAY INVERSE + "ADRESSEN START "+
"
6,21 SAY "ADRESSENVERWAL TUNG"
8,21 SAY "APPLE //e Ver. 1.0 8/84"
1Ø,21 SAY "AUTOR : ERNST FISCHER"
15,9 SAY "Letzter Zugriff : " + DATE +
Anzahl Records : "
S 15,68 SAY STR(R:NR,3)
DO WHILE .NOT. OK
§
§
§
§
S 17,9 SAY "Bitte geben Sie das Datum ein <TT/MM/JJ> W
GET DATE PICTURE '99/99/99'
READ
IF VAL($(DATE,1,2)) > 31;
.OR. VAL($(DATE,1,2)) < 1;
.OR. VAL($(DATE,4,2)) > 12;
.OR. VAL($(DATE,4,2)) < 1;
.OR. VAL($(DATE,7,2)) < 83
? CHR (7)
ELSE
STORE T TO OK
ENDIF
ENDDO
ERASE
STORE $(DATE,1,2) +" "+ $(DATE, 4,2) +" " + $(DATE,7,2) TO DATUM
SET DATE TO &DATUM
$ 23,0 SAY INVERSE + "ADRESSEN
8 DATUM " + DATE()
$ 17,5 SAY "Bitte Passwort eingeben ú
SET CONSOLE OFF
ACCEPT ' ' TO ZGBER
SET CONSOLE ON
ERASE
RELEASE OK, DATUM, DATE
IF ZGBER < > "PEEKER"
RELEASE ALL
ERASE
QUIT
ENDIF
DO HMENUE
*Ende von AD-START
START" +
=
Peeker 8/85
Wordstar
drucktinternationale
Zeichensätze
Frei definierte Sonderzeichen auf dem FX-80 nutzen
von Dipl.-Ing. H. A. Rohrbacher
Normalerweise drucken die Epson-Ma-
trixdrucker der MX- oder FX-Serien den
mit ihren DIP-Schaltern eingestellten
Vorzugszeichensatz aus. In aller Regel
ist dies der deutsche Satz mit den Um-
lauten, dem B und dem Paragraphzei-
chen. Dies geschieht völlig unabhän-
gig von der Darstellung der Sonderzei-
chen auf dem Bildschirm.
Nun kommt es häufig vor, daß man entwe-
der in einer fremden Sprache korrespon-
dieren oder in deutschen Texten die ecki-
gen oder geschweiften Klammern verwen-
den möchte, die aber beim deutsch einge-
stellten Drucker nicht ohne weiteres er-
reichbar sind. Hier bietet der Drucker die
Möglichkeit eines Software-Schalters, der
die Umschaltung auf einen zweiten Spra-
chensatz veranlaßt. Beim Epson-Drucker
erfolgt die Auswahl des Zeichensatzes
über ESC R (n), also in Applesoft durch
PRINT CHR$(27) "R"; CHR$(n), wobei
„n“ die Zeichensatz-Nummer ist (ASCII: n
= 0, Französisch: n = 1, Deutsch: n = 2
USW.).
"A = ASCII EIN ^AN = DEUTSCH EIN
í = å = ü A = ü
[ = Á N = Ü = ü
v = B @ = å B `.
“E = R Engschrift EIN/AUS åvuBAORE = {iV [\Je
“b -> “Ñ L > T t. exul == L. 1
“WE 5 BR Sperrschrift
Ð >> D doppelt gedruckt
`B = BR fett gedruckt ööö=:ıı
NND = "BD weit+doppelt
T ° I tiæwfætællæn Aðü= ! >
“IE > TR tist+eng A8üU698=(1)006
SV N NY hochstellenm AGUC
VY E — `> it daf H Së 2 Ser r+hochetellen
N N NYSE nn A E m im < <= Ex
Tabelle 2
Peeker 8/85
Adresse: Adr.# Ctrl-P Inhalte Bedeutung
TRMINI: 0292 Ø4 14 48 lA 33 CTRL-Z3 -> deutsche Zeichen
DEL3: ø2D1 Øl (ex: 19) mittellange Warteschleife AUS
DEL4: Ø2D2 Øl (ex: 4Ø) lange Warteschleife AUS
DELS: Ø2D3 ØØ (ex: Ø9) Ctrl-delay AUS
PALT: Ø6B5: TA Ø3 1B 52 ØØ ESC-Sequ.-> ASCII-Zeichen EIN
PSTD: ØGBA: IN Ø3 1B 52 02 ESC-Sequ.-> deutsche Zch. EIN
USR1: Ø6C9: 1Q Ø3 1B 57 ØØ ESC W Ø -> Weit AUS
USR2: @6CE: TW 93 1B 57 Øl ESC W 1 -> Weit EIN
USR3: Ø6D3: ÎE Øl ØF SI=CHR$(15) -> Eng EIN
USR4: Ø6D8 FR 93 12 1B 50 DC + ESC P —> Eng AUS+NORMAL
RIBBON: Ø6DD tY 93 1B 53 00 ESC S Ø -> Hochstellen EIN
RIBOFF: Ö6E2 1Y Ø4 1B 54 1B 48 ESC T +H -> Hochstellen AUS
ROLUP: @BF fT 03 1B 53 Øl ESC S 1 -> Tiefstellen EIN
ROLDOW : Ø6C4 1T Ø4 1B 54 1B 48 ESC T +H -> Tiefstellen AUS
PSINIT: Ø6E7 07 1B 40 1B 52 Ø2 1B 4F -> dt. Drucker INIT
PSFINI: Ø6F8 Ø9 1B 57 ØØ 12 1B 40 1B 52 Ø2 -> Drucker END
BLDSTR: 0691 TB 03 Fettdruck mal Anschlag
DBLSTR: 0692 TD 92 Doppeldruck 2mal Anschlag
Tabelle 1 Patches für den mnemotechnichen WORDSTAR 3.0 mit den
frei wählbaren deutschen oder ASCII-Sonderzeichen.
Man kommt zum Ziel, wenn diese Um-
schaltung mit einem Ctrl-Code ermöglicht
wird. Hierzu bietet Wordstar die Labels
PALT: und PSTD: an. Diese haben die
Adressen 06B5H bzw. 06BAH und wer-
den über TA und TN aktiviert. In der
Praxis verfährt man wie folgt:
Der beim Booten angebotene Sprachsatz
ist zunächst deutsch. Soll nun im Verlauf
des Editierens ein ASCII-Zeichen ausge-
druckt werden, so gibt man T A (= Ctrl-P-
Ctrl-A) und drückt dann diejenige Taste,
die dem ASCII-Zeichen entspricht (siehe
Tabelle 2). Danach schaltet man wieder
mittels 1 N (= Ctrl-P-Ctrl-N) auf den deut-
schen Satz zurück. T A ist also der (A)lter-
native, TN der (N)ormal installierte Satz.
Wichtig ist, daß die Drucker-Initialisierung
deutsch erfolgt. Diese Festlegung erfolgt
im Label PSINIT: in Adresse 06E7H (WS
V3.0) und wird in PSFINI: mit 1B 52 02
wiederholt. So wird dafür gesorgt, daß der
Neuausdruck einer Datei — trotz eines ver-
gessenen ÎN — mit keinem anderen als
dem deutschen Zeichensatz startet.
Die Vorgehensweise des Patchens wurde
bereits in dem vorhergehenden Aufsatz
erläutert. In der nachstehenden Tabelle 1
wurden die übrigen Patches für die unter-
schiedlichen Schriftarten (breit, eng, ge-
sperrt, fett, doppelt, indiziert) so gewählt,
daß die Ctrl-Codes mnemotechnische Re-
geln befolgen. Alle wichtigen Labels sind
aufgeführt. Zu beachten ist, daß das 1-
Zeichen für , Ctrl-P" steht.
Tabelle 3 nennt die Label-Inhalte für die
neun verschiedenen Zeichensätze, die
beispielsweise der FX-80 anbietet. Man
kann sich so eine deutsch-französische
oder deutsch-spanische WS-Version anle-
gen und würde, wollte man nur in französi-
scher Sprache schreiben, gleich zu Be-
45
ginn der Datei ein TA setzen Dieses
„FLAG“ müßte nicht einmal durch TN
zurückgesetzt werden, da bei Druckbeen-
digung der Inhalt von PSFINI: automatisch
wieder für deutsche Verhåltnisse sorgt.
Die Texte der Abbildungen 1-3 zeigen
zweisprachige Beispiele.
Deutsch + ASCI I
Im ASCII+DEUTSCH gepatchten WORDSTAR können die Umlaute
ADUAGU sowie das Scharf-S BRA und diese Zeichen: 458 mit den
US-ASEII-Sonderzeichen TISEI oder der Tilde “~~ und dem AT-
sign @@@ beliebig gemischt werden: [àl oder Ai ,
sind möglich.
Abbildung 1
Frangais!
Deutsche und französische Sonderzeichen gemischt:
Voilà: Chague élève aura son WORDSTAR à Noel,
travaillant en français et allemend en mëme temps.
Das ë wird übrigens so erzeugt: e ctrl-FH mit
anschließendem ^, da das ë nicht im FX-8Ø-
Sprachensatz enthalten ist. Tout est tres simple!
Es entsprechen: AGGUN Sp = °éçuse`a `
Abbildung 2
i SERAORES !
Nun kann mein WORDSTAR auch die spanischen Sonderzeichen
parallel zu den deutschen Umlauten ausdrucken: j "AREIY'@,
Con el FX-BØ: ‚Toto es possible! La manipulacion del
WORDSTAR en alemán y español es muy sencillo. å Le gusta
a usted el WS? y: ¿has comprendo todo? ¡Olé!
übrigens: öfters vorkommende Akzent-Buchstaben vie & werden
so erzeugt: e und ctrl-FH Shift-7 (’) bewirken "Backspace",
wodurch beide Zeichen übereinander gedruckt werden.
Abbildung 3
Sonderzeichen mit Wordstar
Technisch wissenschaftliche Texte enthal-
ten in der Regel viele Sonderzeichen, bei-
spielsweise die Elemente des griechi-
schen Alphabets oder die Buchstaben in-
dividueller Schriften, wie inverse oder go-
tische Zeichen. Auch sind ganze Sequen-
zen zusammengesetzter Grafikzeichen
denkbar, mit denen Bordüren oder beson-
dere Hervorhebungen des Textes erzeugt
werden.
Derartige „Fonts“ können in den Puffer
der Epson-Drucker der FX-Serie geladen
werden und stehen zusätzlich zum übri-
gen Zeichensatz zur Verfügung. Die Fonts
bezieht man entweder aus bekannten Pro-
grammen, oder man erstellt sie sich mit
Hilfe eines Shape-Editors und einem Font-
Loader nach eigener Vorstellung und Ge-
schmack. Die letztgenannte Möglichkeit ist
oftmals die bessere, da man nur diejeni-
gen Sonderzeichen auswählt und auf die
Speicherplätze des Puffers verteilt, die
wirklich auch benötigt werden. Dabei ist es
zweckmäßig, mnemotechnischen Regeln
folgend, ein Alpha auf die Taste A, ein Beta
auf B und das Omega-Zeichen auf O zu
legen.
Zur Übernahme eines Sonderzeichens
aus dem Puffer erwartet der FX-80 den
Befehl ESC % 1 0, während die Rück-
schaltung auf den normalen Zeichensatz
durch ESC % 0 0 bewirkt wird.
46
auch “N
PALT: Ø6BS 1A Ø3 1B 52
EIN:
Ctrl-P-Ctrl-A
PSTD: Ø6BA IN 93 1B 52
AUS:
Ctrl-P-Ctrl-N
ØØ
Øl
ø2
02
ASCII / USA
Frankreich
Deutschland _
England
Dänemark SE
Schweden nl
Italien
Spanien
apan
EIN
Vun A H N H H H
GE
Fremdsprachen | AUS
Tabelle 3 LABEL-Inhalte für die einzelnen Frend- `
Default. Pro WORDSTAR-Diskette kann ~
immer Deutsch mit einer ausgewählten
Fremdsprache kombiniert werden.
Zur Aufnahme dieses Befehlssatzes in
Wordstar bieten sich — falls nicht ander-
weitig vergeben — die Labels PALT: und
PSTD: mit dem Aufruf TA (alternativer
Satz) bzw. TN (normaler Satz) an. Die
Label-Inhalte werden mit dem INSTALL-
Programm wie folgt gesetzt:
PALT: 04 1B 25 01 00
PSTD: 04 1B 25 00 00
Ein weiterer Schritt muß nun folgen; denn
es lauert eine böse Falle bei der Drucker-
Initialisierung PSINIT: und dem Druck-En-
de PSFINI:. Dort wird normalerweise mit-
tels 1B 40 = „alles auf normal zurückset-
Zen der Puffer gelöscht. Daher muß die-
ser Befehl ersetzt werden durch eine Rei-
he von Einzelbefehlen, die das Löschen
des Puffers nicht bewirken. Die genannten
Labels sind 16 Bytes lang und werden wie
folgt (gleich) belegt:
PSINIT: 10 1B 54 1B 25 00 00 1B 4F 1B
57 00 12 1B 46 1B 48
PSFINI: 10 1B 54 1B 25 00 00 1B 4F 1B
57 00 12 1B 46 1B 48
Damit ist die Patch-Arbeit beendet. Im
Text schaltet man die Font-Zeichen mittels
Ctrl-P-A (=? A) ein und mit Ctrl-P-N
= 1 N) wieder aus und damit auf den nor-
malen Zeichensatz zurück.
Die folgende Bildschirm-Textzeile
— die TAATN-Messung liefert 20
TAO ÎN nach dem T AAB 1 N-Verfahren
ergibt ausgedruckt:
- die a-Messung liefert 2@ Q nach dem afß-Verfahren -
Zeichen können beliebig zusammenge-
setzt werden. So entsteht eine Wurzelzahl
(Abbildung 4) durch einen Wurzelzei-
chen-Font mit seinen , Dach-Verlångerun-
gen“ und der — mittels dem ? PH-Back-
space — darunter gesetzten Ziffern. Letzte-
re sind wiederum Font-Elemente, da sie
kleiner sein müssen, um unter das Wur-
zelzeichen zu passen.
Mit nur 4 Grundgrafik-Elementen läßt sich
das in Abbildung 5 dargestellte Mäander-
band erzeugen, wobei die Elemente in
Mehrfach-Serien aufgerufen werden.
Beispiel eines Wurzelausdrucks: =
aus V und 7 erhält man zunächst: y” _
dann werden die Ziffern mit “FH geschrieben:
SAWXKKXKTHTHTHTHCH12345 “N = Wurzelausdruck _ (Bildschirm)
(W=Wurzel, X=Dach der Wurzel, Ziffern ee aor m
Ziffern-Tasten)
NT734$S = Wurzelausdruck
Abbildung 4
Beispiel eines Mäanders:
aus 4-fachem lE I M E wird:
Abbildung 5
Tabelle 4 zeigt eine typische Font-, Kom-
position“. Die relevante Tasten-Zuord-
nung kann mit Hilfe des nachstehenden
Applesoft-Programms ausgedruckt
werden.
100 D$ = CHR$(4) : HOME
110 E$ = CHR$(27) + CHR$(37) +
CHR$(1) + CHR$(0)
120 A$ = CHR$(27) + CHR$(37) +
CHR$(0) + CHR$(0)
130 PRINT : PRINT D$"PR40"
140 PRINT D$"PR#1“ : PRINT : PRINT
150 FOR I = 32 TO 127
160 PRINT CHR$(I);“ = ";E$; CHR$(I);
A$
170 NEXT
180 PRINT D$“PR#0“
Nachzutragen ist, daß alle Fonts den ent-
sprechenden Normalschriften Breit, Eng,
Sperrschrift, Italic, Elite, hoch- und tiefge-
stellt, Fett und Doppelt sowie Proportional-
schrift folgen, so daß hierbei eine unge-
ahnte Fülle von Varianten zur Verfügung
stehen.
Peeker 8/85
Blick über den Zaun: E Jose is) | tz. d i 2 7 8 9 ) [| J É
Die moderne Satztechnik
Da sich die Terminologie der Matrixdruk- ENN V Š“ n AA
ker-Hersteller nicht mit der des grafischen fo üt é p UP Banı.._ -
Gewerbes deckt, wollen wir auch hier
noch einmal einen Blick über den Zaun — < _ lacz. = <
werfen. In der Drucktechnik unterscheidet EE SE r
man zwischen Schriftgruppe, Schriftart, K++=-)V r t 4 A Ç || AELE] Te? NBA
Schriftschnitt und Schriftgrad. Die Schrift-
gruppe (group of typeface) ist eine von10 tar SES Z. K $ < p 9 o + + = EHER..."
lateinischen Schriftkategorien („französi-
sche Renaissance-Antiqua“ usw.). Die CLC dJ- Fri) 1 zum: / 1 2 7 6 9 OL J S
Schriftart (typeface) ist eine individuelle U _
Schöpfung einer Schrift (z.B. „Gara- NNN li 6! MER? Y MPAKA)
mond“), die sich einer Schriftgruppe sub- + ag X é 6 9 ° Z, K I & u Q o #* “= ERAT x. _ >
sumieren läßt. Es gibt ca. 2000 Schriftar-
ten. Der Schriftschnitt (typecut; auch font
genannt) ist eine von mehreren Erschei-
nungsformen derselben Schriftart (z.B.
fett, halbfett, mager, kursiv usw.; Sperr-
schrift gilt dabei nicht als gesonderter
Schriftschnitt). Der Schriftgrad (type size)
ist die in Punkt gemessene Größe eines
Tabelle 4
0,375mm, angloamerikanischer Punkt
0,351mm). Die Summe aller Schriftschnit-
te heißt Schriftfamilie (type family); die
Summe aller Schriftzeichen eines Schrift-
schnittes (beim veralteten Bleisatz in allen
Schriftgraden) heißt Schriftgarnitur (type
Schriftschnittes (kontinentaler Punkt font). U. Stiehl
Wellen Sie mit Ihrem MAGINTOSH
grafisch arbeiten?
Das MacTablett von
Summagraphics
rechender
Georg-Brauchle-Ring 68
D-8000 München 50
Telefon 089/1415077
Telex 5214793
LIMITED
Niederlassung Deutschland
Peeker 8/85 47
Tips und Tricks
in Pascal
Teil 1: Die versteckte Prozedur ,ldsearch*
oder wie man Schlüsselwörter halbfett druckt
von Dieter Geiß
In dieser mehrere Teile umfassenden
Serie soll über viele interessante The-
men für den an Pascal interessierten
Peeker-Leser berichtet werden. Diese
werden vor allem programmiertechni-
sche Kniffe und Eigenheiten des
UCSD-Systems sein, die nicht in den
Handbüchern stehen und die man nur
herausfinden kann, wenn man sich
lange und intensiv mit dem System be-
schåftigt.
Das Problem
Es sei folgende Aufgabe gestellt: Ein vor-
handener Pascal-Quelltext, also z.B. der
SYSTEM.WRK.TEXT, soll auf den Drucker
oder auch ein anderes Geråt ausgegeben
werden. Dabei sollen die Pascal-Schlüs-
selwörter (IF, THEN, ELSE, FOR, DO,
WHILE...), also die vom Compiler reser-
vierten Bezeichner (Reserved Words), be-
sonders hervorgehoben werden, z.B. fett
oder auch unterstrichen, wie dies auch in
der Literatur zum Teil üblich ist. Das Pro-
gramm soll möglichst kurz sein, dabei aber
auch Kommentare und konstante Zei-
chenketten erkennen können, in denen
die reservierten Bezeichner nicht hervor-
gehoben werden dürfen.
Die Theorie
Die Lösung ist eigentlich ganz einfach —
der Compiler muß die reservierten Wörter
schließlich auch erkennen können. Warum
also nicht die (schnelle) Prozedur benut-
zen, die auch vom Compiler eingesetzt
wird?
48
Es handelt sich hierbei um „Idsearch“, die
eine UCSD-Standardprozedur ist. Das
Problem ist nur, daß sie nirgends erklärt
wird und man deswegen nicht weiß, mit
weichen Parametern sie aufgerufen wird
und was sie genau bewirkt. Um das her-
auszufinden, muß man entweder ein Com-
piler-Source-Listing haben oder die Pro-
zedur im Interpreter genau untersuchen.
Da ein Source-Listing im allgemeinen
nicht vorliegt, muß man auf die zweite
Methode zurückgreifen.
Zunächst aber eine kurze Vorbemerkung:
Ein Bezeichner (Identifier) ist eine Folge
von Zeichen, bestehend aus mindestens
einem Buchstaben (A-Z), gefolgt von be-
liebig vielen Buchstaben oder Ziffern. Nur
die ersten acht Zeichen sind jedoch in der
Apple-Version des UCSD-Compilers si-
gnifikant. Dies gilt sowohl für die Version
1.1 als auch für 1.2.
Findet man in einer Zeichenkette also ei-
nen Buchstaben, so weiß man, daß es sich
um einen Bezeichner handeln muß, der so
lang ist, bis ein Trennungszeichen folgt,
also ein (ASCII-)Zeichen, welches kein
Buchstabe und keine Ziffer ist.
An diesem Punkt setzt die Prozedur „Id-
search” an. An diese wird ein Zeiger (Cur-
sor) sowie ein String oder ein Packed Ar-
ray of Char übergeben. Der Zeiger muß
auf den ersten Buchstaben des Wortes
zeigen, das man untersuchen möchte. In
Tabelle 1 ist ein Beispiel wiedergegeben.
Dabei soll 14 die Länge des Strings sein,
die sich im ersten Byte (Byte O des
Strings) befindet. Symcursor hätte also
den Wert 1, da das „w“ von while der
erste Buchstabe des Strings ist.
Ø 123456789Ø1234
S [14]: while I < 5 do
1
Symcursor
Tabelle 1
Nun ruft man Idsearch (Symcursor, S) auf.
In der Prozedur geschieht nun folgendes:
Es wird untersucht, ob ein Pascal-Schlüs-
selwort vorliegt. Dabei wird Symcursor auf
das Ende des zu untersuchenden Wortes
gestellt (siehe Tabelle 2).
Ø 123456789Ø1234
S [14]: while I < 5 do
1
Symcursor
Tabelle 2
Gleichzeitig werden aber auch noch drei
weitere Variablen beeinfluBt, die nicht am
Aufruf beteiligt sind, aber in der Variablen-
definition direkt hinter der Variablen „Sym-
cursor“ definiert sein müssen (siehe Li-
sting).
— In „Sym“ wird die Nummer des Symbols
abgespeichert, das gerade gefunden wur-
de, wenn es sich um ein Schlüsselwort
handelt. Der Einfachheit halber wurde
„Sym“ als Integer-Zahl definiert, was für
diesen Zweck ausreicht. Eigentlich müßte
„Sym“ eine Variable vom Aufzählungstyp
sein, also Sym: (Ident, Comma, Colon, ...,
DOsy, TOsy,...). Ist Sym = 0, so handelt
Peeker 8/85
es sich um kein reserviertes Wort, also um
einen Bezeichner. Ist Sym < > 0, so
liegt ein reserviertes Schlüsselwort vor.
Für while ist die Nummer z.B. 23.
— Die nåchste Variable „Op“ wird gesetzt,
wenn es sich um einen Operator handelt,
also z.B. AND, DIV, MOD, OR, IN. Wird ein
solcher gefunden, ist Op < > 0 und Sym
39, 40 oder 41. „Op“ spielt für unser
Problem aber keine Rolle.
— Die Variable „ld“ wird ebenfalls beein-
fluBt. „Id“ ist vom Typ „Alpha“ und kann
einen Bezeichner (maximal acht Buchsta-
ben) enthalten. Wenn Sym = 0 ist, dann
muB es sich um einen selbst-definierten
Bezeichner oder um eine vordefinierte
Prozedur wie ,Unitread" etc. handeln.
„Id“ enthält dann nach dem Aufruf von
„Idsearch“ die ersten acht Buchstaben
des gefundenen Bezeichners, die sogar
schon in Großbuchstaben umgewandelt
sind. Man könnte „Id“ also dazu benut-
zen, um etwa mit der Funktion „tree-
search“ (siehe Pascal Language Referen-
ce Manual, S. 49) den Bezeichner weiter
zu untersuchen oder in einen Binärbaum
einzufügen, um später ein sog. Cross-
Reference-Listing von allen Bezeichnern
zu bekommen.
Das Programm
Da das Programm möglichst kurz sein soll-
te, wurde auf schnelle Ein/Ausgabe-Routi-
nen verzichtet und statt dessen die einge-
bauten Prozeduren „Readln“ und
„Writeln“ benutzt, die allerdings bei Text-
files nicht besonders schnell laufen. Wer
möchte, kann an dieser Stelle noch Ver-
besserungen anbringen.
Die Abfrage nach Kommentaren und kon-
stanten Zeichenketten ist komplizierter als
die Bezeichnersuche selbst, die sich in
wenigen Zeilen abhandeln läßt.
Nach dem Starten des Programms werden
zuerst Ein- und Ausgabe-Files erfragt.
Läßt sich ein File nicht öffnen, wird das
Programm verlassen. Danach kann man
einen Präfix- und einen Suffix-String ein-
geben. Diese Strings werden dem gefun-
denen Pascal-Schlüsselwort voran- oder
nachgestellt. Will man beispielsweise die
Schlüsselwörter unterstrichen ausgeben,
so gibt man für den Epson-Drucker als
Präfix die Zeichenfolge <ESC> ,-' ,1' und
als Suffix <ESC> ,-' ,0' ein, für den Ima-
gewriter <ESC> Ai und <ESC> ,Y'.
Schließlich kann man noch wählen, ob
man eine Zeilennumerierung haben
möchte.
Peeker 8/85
IDSEARCH
{$C von Dieter Geiß, 28-November-1984}
{$R-}
program FastIdsearch (input, output);
type Alpha = packed array [Ø..7] of char;
MaxStr = string [255];
var Lines : integer;
Lnum : boolean;
Comment : integer;
Comments : array [1..4] of string [2];
Š : MaxStr;
Pre + String;
Post : String;
Infile : interactive;
Qutfile : interactive;
EENEG )
procedure Init;
var Ç : char;
begin (Init)
($I-)
page (output);
Lines := Ø;
writeln ('Schnelle Schlüsselwortsuche mit idsearch');
writeln ('von Dieter GeiB');
writeln;
write ('Eingabefile: ');
readln (S);
openold (Infile, S); (reset geht auch)
if IOresult <> Ø then
begin
openold (Infile, concat (S, '.TEXT'));
if IOresult <> Ø then exit (program)
end; (if)
write ('Ausgabefile: ');
readln (S);
if S= '' then S := "CONSOLE: ' ;
opennew (Outfile, S); (rewrite geht auch)
if IOresult <> Ø then exit (program);
writeln;
write (' Pråfix-String: ');
readln (Pre);
write ('Postfix-String: ');
readln (Post);
writeln;
write ('Zeilennummerierung? ');
read (C);
writeln;
writeln;
Lnum = C in ['J', 'j'];
Comment := 0;
Comments [1] := '{';
Comments [2] := '(*';
Comments [3] := ')';
Comments [4] := '*)'
($I+)
end; (Init)
EE geehrt )
procedure Scanner (var S : Maxstr);
var SymCursor : integer;
Sym : integer;
Op : integer;
Id : Alpha;
OldCursor : integer;
P : integer;
begin (Scanner)
SymCursor := 1 + scan (length (S), <> ' ', S [1]);
if Comment <> Ø then (Kommentar möglicherweise...)
begin (...in dieser Zeile zu Ende)
P := pos (Comments [Comment + 2], S);
if P <> Ø then
begin
SymCursor := P + length (Comments [Comment + 2]);
Comment := Ø
end (if)
end; (if)
49
Ubrigens gibt es noch weitere Prozedu-
ren, die der Compiler erkennt und nir-
gends beschrieben werden. Diese haben
allerdings keine große Bedeutung. „Open-
old“ beispielsweise ist nämlich gleichbe-
deutend mit „Reset“, und „Opennew“
entspricht „Rewrite“.
„Time (11, 12)“ füllt beim Apple beide Inte-
ger-Zahlen I1 und 12 mit O, weil keine Uhr
vorhanden ist. Hätte man eine Uhr ange-
schlossen, müßte man den P-Code-Inter-
preter an der Stelle patchen, wo die
Adresse der Standardprozedur „Time“
steht ($D112 und $D113 in der Bank 1).
Übrigens hat „Segment“ den gleichen Id-
Code wie „Program“. Man könnte also
statt „Program Test“ auch „Segment
Test“ schreiben, statt „Segment Proce-
dure“ auch „Program Procedure“.
Im nächsten Teil soll der Frage nachge-
gangen werden: Kann man den P-Code
optimieren?
while (SymCursor <= length (S)) and (Comment = 0) do
begin
OldCursor := SymCursor;
if S [SynCursor] in ["A".; 2", "et, fei)
then
begin
idsearch (SymCursor, S);
if Sym <> Ø then
begin
insert (Post, S, SymCursor + 1);
insert (Pre, S, OldCursor);
SymCursor := SymCursor + length (Post) + length (Pre)
end (if)
end (if)
else
if S [SymCursor] = "ii" (konstante Zeichenkette)
then SymCursor := SymCursor + 1 +
scan (length (S) — SymCursor, = '''', S [SymCursor + 1])
else
begin
if S [SymCursor] = '('
then Comment := 1
else if pos ('(*', S) = SymCursor then Comment := 2;
if Comment <> Ø then
begin
P := pos (Comments [Comment + 2], S);
if P > SymCursor then (Ende des Kommentars...)
begin (...in gleicher Zeile)
SymCursor := P + length (Comments [Comment + 2]) - 1;
Comment 0
end (if)
end (if)
end; (else, else)
SymCursor := SymCursor
end (while)
end; (Scanner)
begin (FastIdsearch)
Init;
while not eof (Infile) do
begin
fillchar (S, size_of (S), 0);
readln (Infile, S);
Scanner (S);
Lines := Lines + 1;
if Lnum then write (Outfile, Lines : 5, ' ');
writeln (Outfile, S)
end; (while)
close (Infile);
close (Outfile, lock)
end (FastIdsearch).
SUPERDUMP und Apple je
Das Programm Superdump aus Peeker 6/85, S. 22 läuft ohne Änderung nicht auf dem Apple Ilc. Die Ursache dieses Problems
liegt nicht in einer Unzulånglichkeit des Programms, sondern in der eigenwilligen Konstruktion der seriellen Karte im Ilc (die
Image-Writer-Toolkit-Diskette unter DOS 3.3 funktioniert ebenfalls nicht auf dem Ilc.).
Bei der Ubertragung eines Zeichens wird in einem Hardwareregister der Status des Druckers abgefragt. Ein gesetztes Bit 6 bei
der Super Serial Card signalisiert die Bereitschaft des Druckers, ein neues Zeichen entgegenzunehmen. Dieses Register wurde
beim llc geändert, so daß nun das Bit 5 diese Aufgabe übernimmt.
Um das Programm auf den Apple llc anzupassen, muß die Routine zur seriellen Ausgabe geändert werden. Diesen Patch kann
man von der Apple-Version abhängig machen, um das Programm auf den verschiedenen Rechnern starten zu können.
Dazu muß folgende Zeile in das Applesoft-Programm SUPERDUMP.IMAGEWRITER eingefügt werden:
1325 IF PEEK (64435) = 6 AND PEEK (64448) = 0 THEN POKE 34499 32
Die beiden PEEK-Anweisungen fragen die sog. Machine-ID-Bytes ab, wodurch nur im Falle des llc das entsprechende Byte in
der Ausgaberoutine geändert wird.
50
Peeker 8/85
von Dr. Jürgen B. Kehrel
Für den Apple II gibt es rund ein Dutzend
verschiedener Assembler. In ihren Stan-
dardbefehlen halten sich fast alle an die
Opcodes (= Operation Codes, Befehls-
worte), die von dem ersten Hersteller des
6502-Prozessors, MOS Technology Inc.,
eingeführt wurden. Ein guter Assembler
verfügt darüber hinaus noch über eine An-
zahl von sogenannten Pseudo-Opcodes,
die nicht zur Steuerung des 6502 dienen,
sondern vielmehr Befehle für den Assem-
bler selber darstellen. Diese sind nicht ge-
normt, so daß eine direkte Übertragung
auf einen anderen Assembler meistens
nicht möglich ist, auch wenn viele Ähnlich-
keiten vorliegen. Im Peeker sollen bevor-
zugt Listings im Big-Mac- oder Merlin-
Format veröffentlicht werden, was die an-
deren Assembler natürlich nicht aus-
schließt.
Assembler 44
Assembler-Pseudo-
Opcode-Referenztabelle
Um Ihnen eine Hilfe zur Ubertragung von
fremden Pseudo-Opcodes auf Ihr eigenes
System zu geben, sind nachfolgend die
Befehlsworte der fünf gebräuchlichsten
Assembler einander gegenübergestellt.
Halbfett gedruckt finden Sie in alphabeti-
scher Reihenfolge die Liste der Big-Mac-
bzw. Lisa-2.5-Befehle und ihre Entspre-
chungen bei den übrigen Assemblern. Ist
ein Code eingeklammert, dient er nur un-
ter speziellen Bedingungen als Ersatz. Ein
Strich in einer Rubrik bedeutet, daß der
entsprechende Befehl nicht vorhanden ist.
Das schließt aber nicht aus, daß Sie über
einen Umweg nicht auch zum selben Er-
gebnis kommen können. Alle Angaben
geschehen nach bestem Wissen, aber oh-
ne Gewähr, denn ich arbeite natürlich nicht
mit all diesen Assemblern.
Tabelle siehe nächste Seite
ProDOS-Analyse
Version 1.0.1, 1.0.2, 1.1.1
Arne Schåpers
1985, ca. 450 S., kart.,
DM 68,—
ISBN 3-7785-1134-3
Dr. Alfred Hüthig Verlag
6900 Heidelberg - Postfach 1028 60
Peeker 8/85
„Die ProDOS Analyse" ist die
umfangreichste und detaillier-
teste Darstellung, die jemals
ein Apple-Betriebssystem er-
fahren hat. Wer die „Innerei-
en“ von ProDOS bis zum letz-
ten Byte, z. T. bis ins letzte Bit
kennenlernen möchte, braucht
dieses Buch. Das komplette
Betriebssystem (Urlader, MLI,
Disk-Driver, RAM-Disk-Driver
und Uhr-Routine) mit Ausnah-
me des BASIC-SYSTEM wird
mit umfangreichen Kommenta-
ren und Übersichtstabellen dis-
assembliert. Dabei werden alle
bisherigen Versionen von
1.0.1 bis 1.1.1 berücksichtigt.
„Die ProDOS Analyse“ be-
schreibt erstmals auch mehre-
re Programmierfehler, die bis
in die neueste Version zu fin-
den sind. Auch die nicht im
„Technical Reference Manual"
aufgeführten Eigenschaften
von ProDOS werden analysiert
und beschrieben, z. B. die ver-
trackten eingebauten Testrou-
tinen zur Identifikation der ver-
schiedenen Apple Il Modelle
und eventueller Nachbaugerä-
te. Programmierer, die Pro-
DOS versionsabhängig „pat-
chen“ möchten, erhalten hier
den genauen Überblick, wo
was geändert werden muß, da-
mit dies keine negativen Kon-
sequenzen hat. Durch die mi-
nutiöse theoretische Sezie-
rung von ProDOS eröffnen
sich völlig neue programmier-
praktische Perspektiven.
51
#Adresse
#<Adresse
#>Adresse
#/Adresse
52
Merlin Lisa 2.5 Toolkit S-C Macro
DW
ASC
(REP/CHR)
BGE
BLT
DB
DW
DDB
DCI (DCI)
DDB DDB
DFB
(DS)
ELSE
END
EOM/<<<
EQU
EQU
EXP ON
LST ON LIST ON
- MA
LST OFF .LIST OFF
OBJ OBJ
ORG ORG
PAGE PG
PAU -
PCM/>>> unnötig
PUT IN
SAV TF
SKP -
TR ON -
USR
VAR
ERR
LUP
CHR
DEND
SECT
ENTRY
EXTRN
MSB ON
MSB OFF
REL
REP
#Adresse
#>Adresse!
#<Adresse!
/Adresse -
#Adresse
#<Adresse
#+> Adresse
#/Adresse
#Adresse #Adresse
#<Adresse -
#> Adresse -
#/Adresse
Anmerkung
2-Byte-Adresse / Ausdruck Lo-Hi
ASCII-String (“ = Bit 7 gesetzt)
Drucke Anzahl Sternchen
FLASH-ASCII-String
= BCS
= BCC
Adresse / Ausdruck nur Lo-Byte
Kontrollzahl (Checksum)
2-Byte-Adresse / Ausdruck Lo-Hi
2-Byte-Adresse / Ausdruck Hi-Lo
ASCII-String, letztes Bit invertiert
Führe DOS-Befehl aus
2-Byte-Adresse / Ausdruck Hi-Lo
Definiere Byte
Reserviere Speicher
Bedingte Assemblierung ELSE
Programmende
Ende einer Macrodefinition
Lisa: Zero-Page-Label 1 Byte
Label 1 oder 2 Byte (Lisa 2 Bytes)
Drucke Macros aus
Bedingte Assemblierung Ende
FLASH-ASCII-String
Liste alle Bytes pro Zeile
Adresse / Ausdruck nur Hi-Byte
1-Byte Hexadezimalwert
Verkette Quellcodefiles
Bedingte Assemblierung Anfang
INVERSE-ASCII-String
Label Neudefinition
Labeleingabe über Tastatur
Listing anschalten
Beginn Macrodefinition
Listing ausschalten
Listet nur 3 Bytes pro Zeile
Aktuelle Objekt-Code Adresse
Adresse für ablauffähigen Code
Sende Ctrl-L (neue Seite)
Pause, Abbruch
Neuer ORG, ohne OBJ zu ändern
Macroaufruf
Verkettung von Quellcode-Files
Automat. Obj.-Code Abspeicherung
Sende Zeilenvorschub
ASCII-String mit Längenbyte
Liste nur 3 Bytes pro Zeile
Titel auf jeder Ausdruckseite
Benutzerdefinierbarer Befehl
Labeldefinition in Macros
Fehlermeldung, wenn Ausdruck <> 0
Schleifenanfang
Schleifenende
Wie ASC, nur String rückwärts
Definiere Byte für REP
Dummyteil Ende
Dummyteil Anfang
Globales Label (unbenutzt)
Externes Label (unbenutzt)
Setzt Bit 7 in Strings
Löscht Bit 7 in Strings
Verschiebbarer Code für RLOAD
Druckt CHR mehrmals
Lo-Byte eines 2-Byte-Ausdrucks
Lo-Byte eines 2-Byte-Ausdrucks
Hi-Byte eines 2-Byte-Ausdrucks
Hi-Byte eines 2-Byte-Ausdrucks
Peeker 8/85
@ va ECH und
ven mehr.
Musteranzeige privat
1 Druckzeile à 32 Buch-
staben nur D DM 5,—
| zuzügl. oe MwSt
S Beispiel: x
Verkaufe “yaaa wapu Typenrad-
drucker mit Apple-Interface.
Preis auf age Tel. 007
nur DM 17. We i nkl.
Musteranzeige gewerblich
Die einspalti e Millimeter-
zeile (42 mm breit) kostet
5, 50 Lem MwSt.
Beispiel:
Neu im Reeg Professionelle,
separate Tastatur für Apple Il
plus 16 Funktionstasten und sepa-
ratem Ziffernblock.
| Fa. Keyboard & Co.
4444434 DEE| ER 94
MAGAZIN FÜR APPLE-COMPUTER
AUFTRAG FUR KLEINANZEIGEN
Bitte veröffentlichen Sie in der nächsterreichbaren Ausgabe nachstehenden
Text unter folgender Rubrik:
[ ] suche Hardware L] suche Software O Verschiedenes
L] biete Hardware CO biete Software O Chiffre
C] Tausch
L] Kontakte
OTT TT TITT
GLE
Bitte jeweils 32 Buchstaben pro Zeile-einschlieBlich Satzzeichen und Wort-
zwischenråume. Bitte Absender nicht vergessen.
Chiffregebühr DM 6,- zuzügl. MwSt.
999999 | MAGAZIN FUR APPLE-COMPUTER
Seite — >
Zu der in »peeker«, Heft erschienenen
L] Anzeige [| Produktbesprechung
über
bitte ich um detaillierte Information.
Ich wünsche [| Prospekt, Datenblatt [| Preisliste [| schriftliches Angebot [ tel. Rückruf
Produkt und Bestellnummer
gebe ich neben-
stehende Bestellung
unter Anerkennung
Ihrer in der Anzeige
genannten Liefer- und
Zahlungsbedingungen
auf.
Unterschrift (für Jugendliche unter 18 Jahren der Erziehungsberechtigte)
444444 DEEKER 44
R APPLE-COMPUTER
Schreiben Sie uns, wenn Sie Fragen, Ergänzungen oder Anregungen zu
Aufsätzen in »peeker« haben:
£
R
Q
£
Bitte veröffentlichen Sie den um-
stehenden Text von Zeilen
DM in der nàchsterreich-
aren Ausgabe von »peeker«
a
b
Bei Angeboten: Ich bestätige, daß ich alle
Rechte an den angebotenen Sachen besitze
Unterschrift
Telefon mit Vorwahl
Anschrift der Firma angeben, bei der Sie
bestellen bzw. von der Sie Informationen
wünschen
Karte bitte vollständig ausfüllen
Vorname, Name
Firma
Straße
PLZ/Ort
Telefon mit Vorwahl
®
5
+
2
=
ANTWORTKARTE
peeker-Borse
Anzeigen-Service
Dr. Alfred Hüthig Verlag
Postfach 10 28 69
6900 Heidelberg 1
POSTKARTE
Firma
Straße
PLZ/Ort
POSTKARTE
peeker
Redaktion
Postfach 10 28 69
6900 Heidelberg 1
99999
Produkt-
Karte
Wünschen Sie
weitere Informationen
zu einem der im Heft
vorgestellten
Produkte ?
Nichts einfacher als
das.
Produkt-Karte aus-
fullen, mit 60-Pfennig
frankieren und
absenden.
Vorher aber nicht
vergessen:
kreuzen Sie an,
welchen Informations-
wunsch Sie haben.
Damit erleichtern Sie
dem Hersteller
eine gezielte Beant-
wortung Ihrer Anfrage.
Zum SchluB tragen
Sie auf der Rück-
seite die genaue
Anschrift des
Inserenten/Herstellers
und Ihre vollståndige
Firmenanschrift ein.
: MAGAZIN FÜR APPLE-COMPUTER
Verkauf Hardware
Apple - DOT - Matrix - Drucker
mit Parallel-Interface-Karte (Apple)
VHB DM 1600,-
H. Bösing, Erlenweg 8, 2872 Hude 2,
Tel. 044 84/746
APPLE comp. (6 Mon. Garan-
tie. Neugerät), mit 64 K, 6502 u.
Z80 CPU im IBM-Gehäuse, sepa-
rater Tastatur, 80 Zeichen Disk-
contr., 1 Laufw. 160 K, DM 1950,—
Monitor bernst. DM 280,- Tel.
06897/6903
APPLE-Komp. + Cards zu Su-
perpreisen! Ab DM 65,00! Liste von:
RTE Software/TREIBER GmbH
7546 Enzklösterle
Verk. APPLE
0 94 09/933
lc + Zub.
Org. APPLE Disk-Driver, 2
Stück mit Controler 900 DM.
PREH-Commander Tastatur 150
DM. Tel. 0241/83661
Neuwertig (3 Wochen im Einsatz)
zu verkaufen: 2 corvus harddisc
à 6 MB sowie 1 disc-server.
Rückfragen bitte an Fa. Vitra, Hr.
Dr. Treffert, Tel. 07621/702311
Verkaufe TEAC-Doppellauf-
werk 2 x 640 KB mit R-PHI Con-
troler. Beide ungebraucht VB:
1650,— DM, Tel. 0931/41 3258
DEE
Fernschreiberinterface am
Gameport m. Programm DM 79,—-
P. Benner, Hubertusstr. 131, 4150
Krefeld
BROSE 120 (csc)-Tastatur /
22 MHz Monitor (NEC) Sonder-
preise !!! Riter, Hille 057 03/672
Verkauf Software
APPLE Il: "GIANT WORLD?’ ist
da!! x Das neu Top-Adventure mit 3
* Spitzengrafik für riesigen *
* Spielspaß! Es lohnt sich! x
Für nur 89,- DM Vorkasse o.NN
bei xxx FANTASTIC-Software ***
** Grasweg 7, 2857 Langen 3 xx
— — - STOCKMASTER II — — —
Das Apple-Programm für echte Bör-
sengewinne. Nur 485,- DM.
Töngi, Computer-Praxis. Aspeltstr. 4,
D-6500 Mainz 1.
APPLE Il emuliert SHARP-
POCKETC. Dat./Prg. ü. Game/
11 Pin-C. Inf. geg. 2 x 0,80 DM in
Bfm. Klaus Schmidt, Hasenclever-
str. 25, 2000 Hamburg 74
fig-FORTH —— DM 15,00
Assemblerlisting f. APPLE DM 15,-,
FORTH auf Disk f. APPLE DM 45,—
Info kostenlos —— C. Schmidt,
Rungestr. 8, 3500 Kassel
ker
Börse
Verkaufe für Apple Ile/llc
Originalprogramm 'Applevorks',
Neueste Version (1.2.), VB 500 DM,
Tel. 0221/77 93 29.
Ankauf Software
Für Il-e (II-c) Programm gesucht
das Daten auf Diskette bearbeitet
Tel. 0561/498343 od. /804 48 38
Ile-Neuling sucht Programme
aller Art. Liste bitte an Chiffre
P 1003
APPLE REPARATUREN
(auch compatible M-boards, z.B.
Atlas, Arca, CES, Datastar,
Dipa, Lasar, Mewa, PC-48+
46, Plato, Radix, o. ae. SO-
wie Zusatzkarten und Disk-
Drives) führt unser Spezialteam
mit mehr als 5-jähriger Kunden-
und Reparatur-Dienst-Erfahrung,
garantiert zuverlässig und beson-
ders kostengünstig aus. Bitte ge-
naue Fehlerangabe sowie Tel.-Nr.
für evtl. Rückfragen nicht ver-
gessen.
Auf Wunsch Kostenvoranschlag.
aaa-electronic gmbh
Habsburgerstr. 134, 7800 Freiburg,
Tel. 07 61/27 68 64,
Tx. 772642 aaa d
999997
HAHHIHHHHHHFHHFHHHFHHHHFHFHH
Floppysubsystem
für Apple H
2 x 3,5" TEAC FD-35F
max. 2 x 1MB
Autopatch-Controller
inkl. Manual und SW
ALU-Profil-Gehàuse m. Netzt.
komplett anschluBfertig
nur DM 2398,—
een
Telekommunikation *
Anschlußkabel
Dataphon S21d
Terminalsoftware
komplett anschlußfertig
nur DM 398,—
HAHHHFHFHHFHHHFHFHHHIFH
TISCH & ZETTL GdbR
Elektronicvertrieb
Rosenstr. 33, 8034 Germering
Telefon 089/841 68 17
KKK KKK KKK KKK
HH HHF H HH H HH H H H
HH H H H HH H H H H H H H HH
H HH HH HH H HH H H H H H H
H H HH HH H HH HH
MC 3470 (der Leseverstårker auf
dem Analogboard): DM 10,-, A.
Deckers, PF 967, 7 Stuttgart 1
Erscheinungstermin für
Ausgabe 9/85
ist am 26. 8. 1985
Epson Interfaceumbau
f. AWorks DM 20. Mahr, Waldak-
ker 71, 7300 Esslingen
Lieber ’ROBO’ bitte melden.
Manfr. Rost, Düsseldorf, Suitber-
tusstr. 99
es RUND
Büroelektronik
Keithstr. 26 - 1 Berlin 30 : ® 0 30-26 111 26
== RUND
Kg Büroelektronik GmbH
Bachstr. 104 : 2 HH 76 : % 0 40-220 1155
Für weitere Informationen zu einem der in dieser Ausgabe vorgestellten
Produkte stehen Ihnen die Produktkarten zur Verfügung
Bitte verwenden Sie für Kleinanzeigen die vorgedruckten Antwortkarten in
diesem Heft.
Peeker 8/85
55
von Roland und Manfred Fietkau
„Sie nimpt viel Koppfs"
Adam Ries (1492-1559)
In der Kombinatorik und Wahrscheinlich-
keitsrechnung spielen Fakultäten eine
wichtige Rolle. Der Ausdruck N! (N-Fakul-
tät) bedeutet: 1:23... (N-1) : N. N ist
dabei eine positive natürliche Zahl. Zu-
sätzlich muß definiert werden: 0! = 1.
Fakultäten lassen sich im Prinzip sehr
leicht berechnen; bereits eine einfache
Applesoft-Zeile genügt:
10 F = 1: INPUT “Fakultät von ":N:
FORI=1TON:F= Få]: NEXT:
PRINT “F= "E
Schon nach einigen Versuchen wird man
jedoch an die Grenzen dieses einfachen
Verfahrens stoßen. Zwar werden die Wer-
te von O! bis 12! noch exakt berechnet,
doch ab 13! liefert Applesoft nur noch
Nåherungswerte. Der Grund liegt darin,
daß Mantisse und Exponent einer FP-Va-
riablen nur 32 Bits umfassen. Konsequen-
terweise bricht das Applesoft-Programm
auch ab 34! mit einem Overflow-Error ab.
Um auch höhere Fakultäten stellengenau
berechnen zu können, muß man sich also
einer anderen Methode bedienen. Mit
(viel!) Papier und Bleistift ist die Berech-
nung leicht möglich: Man denke daran,
daß vor der Entwicklung des Chips ganze
Tabellen „zu Fuß“ berechnet wurden.
Genau das ist die Methode, die auch das
Assembler-Programm FAKULTAET be-
nutzt.
Das Verfahren
Das Programm wertet den numerischen
Ausdruck nach „&“ aus und überträgt ihn
nach $0000 und $0001.
Um zeitaufwendiges Umrechnen (hex in
dezimal) zu vermeiden, werden alle Be-
rechnungen im Dezimalmodus (BCD-
56
Fakultäten
Arithmetik) durchgeführt. Das bedeutet,
daß der zu berechnende Ausdruck nicht
größer als 9999 sein darf (9999! ist bereits
eine Zahl mit über 35 000 Stellen).
Die zu berechnende Fakultät wird zu-
nächst auf 1 initialisiert und dann fortlau-
fend mit den Zahlen von 1 bis N multipli-
ziert. Da eine Multiplikationsroutine jedoch
sehr zeitaufwendig ist, legt sich das Pro-
gramm durch Aufaddieren eine Tabelle an,
in der alle Multiplikationsergebnisse von 0
- N bis 99 - N eingetragen werden. Eine
einfache Überlegung zeigt, daß dafür
höchstens 3 Bytes pro Tabellenelement
benötigt werden. Die aktuelle Doppelziffer
(2 BCD-Stellen = 1 Byte) der Fakultät wird
als Pointer auf die erstellte Multiplikations-
tabelle benutzt. Das niederwertige Byte
(LL) wird direkt in die Fakultät eingetragen,
das mittlere (MM) und höchstwertige Byte
(HH) werden als Überlauf „gemerkt“ und
bei der Berechnung der nächsten Doppel-
ziffer berücksichtigt. Das ist im Prinzip die
Methode der schriftlichen Multiplikation,
nur daß die Berechnungen mit jeweils
zwei Stellen durchgeführt werden. Wer die
Multiplikationstabelle (0..99 - 0..99) aus-
wendig kennt, kann diese Methode auch
beim schriftlichen Rechnen benutzen. Er
muß dazu nur zwei Überträge berücksich-
tigen.
Wenn der Kopf (das höchstwertige Byte)
der Fakultät erreicht ist, werden die Über-
träge vorangestellt, und der Pointer wird
entsprechend erhöht.
Dieses Verfahren wird so lange wieder-
holt, bis N erreicht ist. Danach erfolgt der
Rücksprung zu Applesoft.
Benutzung des Programms
Der Befehl ,&P" bewirkt den Ausdruck der
berechneten Fakultät auf dem Bildschirm
über die Monitor-Routinen PRBYTE und
PRHEX. Die Ausgabe kann durch Drücken
einer beliebigen Taste unterbrochen und
nach erneutem Tastendruck fortgesetzt
werden.
Nach Eingabe von „&N“ (N = Next) wird
die nächsthöhere Fakultät berechnet.
Will man die numerische Eingabe über
eine Variable vornehmen, so sollte der
Variablenname nicht mit „P“ oder „N“
beginnen, da dann direkt in die PRINT-
oder NEXT-Routine gesprungen wird. Der
numerische Ausdruck nach „&“ muß po-
sitiv sein und im Bereich 0..9999 liegen.
Der Bereich ab $2000 für die berechnete
Fakultät erlaubt es, den Vorgang der Be-
rechnung über HGR mitzuverfolgen. Deut-
lich ist zu sehen, wie die Fakultät sehr
schnell größer wird, während am Ende ein
immer länger werdender Schwanz von
Endnullen mitgeschleppt wird.
Ein kleines Applesoft-Programm berech-
net die Anzahl der Endnullen einer Fa-
Kultät:
10 INPUT “N! EN: X = N
20 | = INT (X / 5)
30 SU = SU + I
40 IF | > = 5 THEN X = I : GOTO 20
50 PRINT "Endnullen von “;N;“! = ";SU
Die Anzahl der Stellen einer Fakultåt kann
man durch Addition der dekadischen Lo-
garithmen von 1 bis N ermitteln:
10 INPUT “N! “€N
20 KO = 1 / LOG (10)
30 FOR 1 = 1 TO N
40 SL = SL + LOG (l) * KO
50 NEXT
60 PRINT “Stellenzahl: "; INT(SL+1)
Soll das Assembler-Programm von einem
Applesoft-Programm aus benutzt werden,
sollten HIMEM auf 9 * 4096 und LOMEM
auf 6 * 4096 + 6 * 256 gesetzt werden, da
FAKULTAET den Bereich $9000 bis
$91FF belegt und die Multiplikationstabel-
len bei $9200 bis $94FF ablegt. Bei einem
nicht allzulangen Applesoft-Programm
(Programmende höchstens $1FFF) sollte
genügend Platz für die Variablen vorhan-
den sein. Der Ampersand-Vektor muß
vom Monitor aus (3F6: 00 90) oder von
Applesoft durch
POKE 1014,0: POKE 1015,144
initialisiert werden.
Das Applesoft-Programm FAKULTAET.-
DEMO zeigt ein Beispiel zur Benutzung
der Fakultät-Routine.
Peeker 8/85
= ASSEMDLER as
FAKULTAET
STA
JMP
Sk de % IH HH HIF HH H H H H H H H H H H H H H H H H H H H
DEX
BMI Fl
LDA $1ØØ,X
SEC
SBC +$30
RTS
F1 LDA #9
RTS
Fakultäten Ø..9999
Roland Fietkau
Manfred Fietkau
April 1985
(O O AO OQ Ë Q Ñ rt
H H H H H H H HH H H H H de H H H H H H H H H H H H H H H H
* *
DOPRINT JSR PRINT
JMP ALLDONE
NEXTFAK LDA HOLDPLO
STA PEND
LDA HOLDPHI
STA PEND+1
SED
LDA NLO
STA CLO
CLE
ADC #1
STA NLO
LDA NHI
STA CHI
ADC #9
STA NHI
CLD
JSR STØ
ALLDONE JSR CHRGET
RTS
ORG $9ØØ0
*
* FAC -> String
FOUT EQU $ED34
* numerischen Ausdruck auswerten
FRMNUM EQU $DD67
* linkes Nibble drucken
PRHEX EQU $FDE3
* Byte drucken
PRBYTE EQU $FDDA
HOME EQU $FC58
* Character Output
COUT EQU $FDED
CHRGET EQU $ØØB1
KEY EQU $C000
STROBE EQU $C010
* Low-Byte der berechneten Fakultät
FAK EQU $2000
*
* ABCD! Low/high (dezimal)
NLO EQU $ØØ
NHI EQU $Ø1
* Pointer zum hochzàhlen
CLO EQU $92
CHI EQU $Ø3
* Pointer auf Fakultåtsende
PEND EQU $Ø4
* Uberlauf low/high
ULO EQU $Ø6
UHI EQU $Ø7
PCOUNT EQU $FE
*
* Multiplikationstabellen
MULTLO EQU $9200
MULTMI EQU $9300
MULTHI EQU $9400
*
HH HHIH HHIH KKK
*
Aktuelle Doppelziffer
von FAK wird von 1 bis 99
aufaddiert und in
MULTLO/MI/HI übertragen
* > ÅÅÅ
MULTTAB LDX zi
STX COUNT
LDA +Ø
STA HOLDLO
STA HOLDMI
STA HOLDHI
SED
CLC
LDA HOLDLO
ADC CLO
HOLDLO
MULTLO,X
HOLDMI
CHI
HOLDMI
MULTMI,X
HOLDHI
+9
STA HOLDHI
STA MULTHI,X
LDA COUNT
ADC #1
BCS TABDONE
STA COUNT
TAX
JMP MUl
TABDONE CLD
RTS
CMP #'N'
*
* Nächste Fakultät berechnen
BEQ NEXTFAK
CMP #'P'
Fakultät ausgeben
BEQ DOPRINT
Numerischen Ausdruck bei TXTPTR
in FAC übertragen und durch
FOUT in String bei $100.. umwandeln
String dezimal in $ØØ/$Ø1
JSR FRMNUM
JSR FOUT
LDX #Ø
LDA $1ØØ,X
BEQ A2
INX
JMP Al
JSR FLOAT
STA NLO
JSR FLOAT
ASL
ASL
ASL
ASL
ORA
STA
JSR
*
COUNT HEX ØØ
HOLDLO HEX ØØ
HOLDMI HEX ØØ
HOLDHI HEX ØØ
HOLDPLO HEX ØØ
HOLDPHI HEX ØØ
x
* Initialisierung
*
COMP LDA #9
STA MULTLO
STA MULTHI
STA MULTMI
STA CHI
STA PEND
LDA #>FAK
STA PEND+1
+Ø
+1
(PEND), Y
CLO
Peeker 8/85 57
58
JSR
BCC
LDA
STA
LDA
STA
RTS
JSR
JMP
Testen, ob
* * Å
e
PI
u
H
LDA
CMP
BCC
LDA
CMP
BCC
SEC
NOTYET
*
DOMULT
STA
LDA
ADC
STA
LDA
ADC
STA
CLD
LDA
CMP
BNE
LDA
CMP
BNE
LDA
BNE
LDA
BNE
RTS
*
TEST
ST1
PEND
HOLDPLO
PEND+1
HOLDPHI
DOMULT
STØ
Pointer CLO/CHI
auf NLO/NHI hochgezåhlt ist
CHI
NHI
NOTYET
CLO
NLO
NOTYET
+Ø
PCOUNT
+>FAK
PCOUNT+1
MULTTAB
+ø
ULO
UHI
(PCOUNT),Y
MULTLO, X
ULO
(PCOUNT),Y
MULTMI, X
UHI
ULO
MULTHI, X
+Ø
UHI
PCOUNT
PEND
WEITER
PCOUNT+1
PEND+1
WEITER
UHI
STEP2
ULO
STEP1
* Pointer auf Fakultåtsende
* um 1 erhöhen
x
STEP1 JSR
LDA
STA
RTS
*
* Pointer um
*
STEP2 JSR
JSR
LDA
STA
RTS
E?
WEITER INC
BNE
INC
JMP
INCPEND
ULO
(PEND),Y
2 erhöhen
STEP1
INCPEND
UHI
(PEND),Y
PCOUNT
WEl
PCOUNT+1
DM1
919B:
919E:
91AØ:
91A3:
91A6:
91A8:
91AB:
91AC:
91AE:
91B0:
91B2:
91B4:
91B6:
91B7:
91B8:
91BA:
91BC:
91BD:
91BF:
91CØ:
91C2:
91C4:
91C6:
91C8:
91CA:
91CB:
91CE:
91D0:
91D3:
91D5:
91D8:
91DA:
91DD:
91DF:
91ER:
91EA:
91E7:
91E9:
91EC:
91EE:
91FØ:
91F3:
91F5:
91F8:
91F9:
91FB:
91FD:
91FF:
512 Bytes
INCPEND INC
BNE
INC
INI RTS
*
PEND
IN1
PEND+1
W HH HHIH HHIH I IH HIHIH IH IH IH IH IH IH H HHIH % IH H H IH HH
*
* Ausgabe auf
* oder Printer
*
PRINT JSR
LDA
STA
LDA
STA
LDY
JSR
LDA
CMP
BCS
JSR
JSR
LDA
JSR
JSR
JSR
JMP
Tastendruck
druck setzt
* * HÅ
=
>
H
3
BIT
BPL
BIT
BIT
BPL
BIT
WA2 RTS
D
DECCOUNT LDA
BNE
LDA
CMP
BNE
PLA
Bildschirm
KOPF
HOLDPLO
PCOUNT
HOLDPHI
PCOUNT+1
+Ø
HOME
(PCOUNT), Y
+$19
PP1
PRHEX
DECCOUNT
(PCOUNT) , Y
PRBYTE
DECCOUNT
WAIT
PP1
unterbricht den
Ausdruck, erneuter Tasten-
ihn fort
KEY
WA2
STROBE
KEY
WA1
STROBE
PCOUNT
DEC1
PCOUNT+1
#>FAK
DEC1
+Ø
$22
PCOUNT
zl
PCOUNT
PCOUNT+1
#9
PCOUNT+1
HOME
NHI
PRBYTE
NLO
PRBYTE
+$5AØ
COUT
+" ! "
COUT
+$AØ
COUT
"="
COUT
+39
+$8D
COUT
AA
COUT
Kl
+4
$22
Peeker 8/85
FAKULTAET.DEMO
100
110
120
130
140
150
160
170
180
190
200
210
220
230
240
250
260
270
280
290
300
310
320
339
349
350
360
370
380
399
400
410
REM FAKULTAET.DEMO
PRINT CHR$ (4)"BLOAD FAKULTAET"
POKE 1013,76: POKE 1Ø14,Ø: POKE 1015,144:
REM 3F5: AC ØØ 90 = JMP $9000
A = 12 * 4096 + 5 * 16: REM $CØ5Ø
HIMEM: 9 * 4096
HGR : TEXT
HOME : PRINT "G)rafik ";
IF G THEN INVERSE : PRINT "EIN";
: GOTO 210
PRINT "EIN/";: INVERSE : PRINT "AUS":
PRINT "F)akultät berechnen"
PRINT "N)ächste Fak. berechnen"
PRINT "A)usgabe Bildschirm"
PRINT "E)nde"
PRINT :
PRINT
IF T$
IF T$
IF T$
IF T$
: NORMAL : PRINT "/AUS"
NORMAL
"G" THEN G = NOT G: GOTO 180
"F" THEN INPUT "Fakultät von:
"N" THEN 399
"a" THEN & P: GOTO 370
IF T$ = "E" THEN END
PRINT CHR$ (7);: GOTO 180
IF G THEN POKE AO POKE A + 4,9: POKE A + 7,Ø
& FA
IF G THEN PRINT CHR$ (7);
GOTO 180
PRINT : PRINT "
PRINT "<Taste>";: GET T$: GOTO 180
IF G THEN POKE A,Ø: POKE A + 4,9:
& N
GOTO 359
":FA: GOTO 330
CHR$ (7);: GET T$: TEXT
POKE A + 7,0
ICROMINT
LLTREFFER
LASAR 16
IBM 256 K, 2 x TEACBFDD, Contr.
color Graphik, Multifunktionscard,
Tastatur, Monitor 4.678;
Netzteil 15 A
LASAR ZE
— Apple comp. 64 K +
° 1.290;
6502 + Z 80 A
80 Z sw Tastatur
AuBerdem volles Rückgaberecht innerhalb
14 Tagen ohne Begründung.
Apple | IBM
@ Mehrzweckklappgehàuse It. Abb. 147,— | 147,—
@ Schaltnetzteile Apple 5 A/IBM 15 A 115,— | 238,—
@ Profitastatur dtsch. LASAR 2000 291,— | 291,—
@ Interface ab 75,— | 148,—
@ Monitor 22 Mhz incl. Fuß, bernstein 289,— | 289,—
Kaufgarantie/Tiefstpreisgarantie/1A Qualitåt: 100 % kompatibel inkl. Systemsoftware
Made by Micromint: Apple II 495,—, Apple lle 695,—, IBM 895,— Fertigplatinen. Tragbare
Gehåuse für 7-Zoll/9-Zoll-Monitore 595,— DM inkl. Tastaturen. Winchester 27 MB auf
Anfrage 1A First Class Controller bis 140 MB 935,- DM.
Generalimporteur MICROMINT Computer GmbH
Hochdahler StraBe 151, 4006 Erkrath 2
Telex 8589305 mcm
02104/33024
a Assembler
Ein Beispielausdruck:
200! = 78865786736479Ø5Ø3552363213932185Ø622951359776871732
63294742533244359449963403342920304284011984623904177212138
91963883025764279024263710506192662495282993111346285727076
33172373969889439224456214516642402540332918641512274282948
53277524242407573903240321257405579568660226031904170324062
35170085879617892222278962370389737472000000000000000000000
0000000000000000000000000000
1 ORG $Ø3ØØ
2 *
Š * Einfaches Dezimalmodus-
4 * Additionsbeispiel/US
5 *
6 * 199 + 1 = 200
7 *
0300: Øl 99 8 SUMMAND1 HEX 0199
0302: ØØ Øl 9 SUMMAND2 HEX ØØØl
0304: ØØ Ou lØ SUMME HEX 0000 ; 0200
0306: F8 11 SED
0307: 18 12 CLC
0308: AD Øl Ø3 13 LDA SUMMAND1+1
Ø3ØB: 6D 03 Ø3 14 ADC SUMMAND2+1
Ø3ØE: 8D 05 Ø3 15 STA SUMME+1
0311: AD ØØ Ø3 16 LDA SUMMAND1
Ø314: 6D Ø2 Ø3 17 ADC SUMMAND2
0317: 8D Ø4 Ø3 18 STA SUMME
@31A: D8 19 CLD
Ø31B: Gë 20 RTS
28 Bytes
cp datentechnik
640 KByte-Drives für den Apple //c!!
@ 51⁄4- od. 31/2-Zoll-Format (Teac FD55/35-F)
@ FD55-F umschaltbar auf 35/40 Track
@ Anschluß an die externe Laufwerkbuchse
@ Durch Einbauplatine (kein Lóten) 640 KByte im Direktzugriff
@ Einfache Anpassung für DOS 3.3, UCSD-Pascal und PRODOS
durch menügeführten Patch
@ Anpassung von CP/M in Verbindung mit einer Z 80-Zusatzplatine
in Vorbereitung
@ anschluBfertig im Gehàuse
DM 1090,—
Festplatten für Apple Il (//e)
@ 51⁄4 Zoll-Format (Slimline)
@ Booten direkt von der Festplatte in DOS 3.3, UCSD-Pascal,
PRODOS und CP/M 2.2 / 3.0
@ Gemischtbetr. mit 35/40/80/160 Track-Drives
@ Copy- und Install-Programme im Lieferumfang
@ Umfangreiches Manual
@ z.B. 12 MB form. incl. Netzteil u. Contr.,
anschlußfertig an Ihren Apple DM 3835,—
640 KByte-Drives für Apple II (//e)
@ 51⁄4- od. 31/-Zoll-Format (Teac FD55/35-F)
@ FD55-F umschaltbar auf 40 Track (Apple kompatible)
@ Installationssoftware für DOS 3.3, UCSD-Pascal, CP/M 2.2,
CP/M 2.23 (60K), PRODOS, AP22, ALS CP/M+
@ Umfangreiches Handbuch
@ Anschlußfertige Auslieferung incl. Contr. und 2 Drives
@ Diskstation 55ll (2 Teac FD55-F, 1.2 MB) DM 1598,—
@ Diskstation 35ll (2 Teac FD35-F, 1.2 MB) DM 1580,—
80 Zeichen + 64 K für Appie He
@ und jetzt hinsetzen . DM 158,—
Alles für ihren Apple
Info bei:
ccp-datentechnik
Herderstraße 12 — 2000 Hamburg 76
Telefon 040/225676
Microsoft Basic leicht
eil 4: Die Grafik
von Pit Capitain
60 Peeker 8/85
7. GRAFIK BEIM MS-BASIC
Da beim Macintosh die Grafik eine sehr
groBe Rolle spielt, erwartet man auch vom
Microsoft Basic relativ komfortable und lei-
stungsfåhige Grafik-Befehle.
Dies ist leider nicht der Fall. Das Basic
bietet — im Vergleich zu den Moglichkeiten
des Mac — nur sehr wenige Grafik-Befeh-
le. Dieser Mangel wird dadurch etwas aus-
geglichen, daB man Zugriff auf einige im
ROM eingebaute Routinen hat.
Mit diesen Routinen hat man dann etwas
mehr Moglichkeiten, Grafik zu erstellen.
Doch ist die Lösung mit den ROM-Routi-
nen nicht sehr elegant, zumal deren Be-
nutzung im Handbuch nur sehr kurz be-
schrieben wird.
7.1. Basic-Befehle.
7.1.1. Koordinaten
Bei allen Grafik-Befehlen müssen Koordi-
naten angegeben werden, die bestimmen,
wo im Ausgabefenster gearbeitet wird.
Diese Koordinaten kann man auf zwei Ar-
ten angeben:
absolut: (X,Y) bestimmt den Punkt im
Fenster, der die angegebenen Koordina-
ten besitzt. Die erste Zahl ist die X-, die
zweite Zahl die Y-Koordinate. Beispiel:
(100,25) — die linke, obere Ecke hat die
Koordinaten (0,0).
Bits
876 5 432 10
Schwarz | 000 1 000 01
Weiß 000 0 111 10
Rot 011 0 011 01
Grün 101 0 101 01
Blau ` 110 0 110 01
Cyan 100 0 100 01
Magenta | 010 0 010 01
Gelb 001 0 001 01
Normal
Invers
Blau additiv
Grün für
Rot | Monitor
Schwarz
Magenta > für
Gelb subtraktiv
Cyan Drucker
Tabelle der Farbwerte
Peeker 8/85
r
é File Edit Control
| beispiel 1
LOGLS PI = 4 * ATN (1)
0 FOR [=0 TO 100 STEP 10 : A = PI * [/ 100
O LINE (15, 50+1) - (15+1, 150), 33
Ó LINE - STEP (5, 10+1/2), ,B
50 CIRCLE (125-1/3, 35+1/3), 10+1/2, 33
m60 CIRCLE (180+1, 60), 50*SIN(A), , PI/2, PIA, 2
Pen, CIRCLE (320+1, 60), 1/2, , -PI-A, -3*PI+A
80 Sec
Abb. 1
relativ: (DX,DY) bestimmt den Punkt im
Fenster, der vom zuletzt angesprochenen
Punkt so weit entfernt ist, wie es die Koor-
dinaten angeben. Beispiel: angenommen,
es wurde zuletzt der Punkt (100,25) ge-
zeichnet. Dann bezeichnet „STEP (-20,
30)“ den Punkt (80,55).
7.1.2. Farben
Bei fast allen Grafik-Befehlen kann man
eine Farbe angeben, mit der gezeichnet
werden soll. Jede Farbe wird durch eine
bestimmte Nummer dargestellt. Die beim
Macintosh vorgesehenen Farben sind mit
ihren zugehörigen Nummern in der Tabel-
le angegeben.
Der Mac kann zur Zeit nur schwarz und
weiß darstellen. Alle anderen Farben wer-
den als schwarz interpretiert (vgl. dazu die
Spalte „Bit 0“ in der Tabelle).
Falls man bei den Befehlen keine Farbe
angibt, setzt das Basic als Defaultwert
schwarz ein.
7.1.3. Einzelne Punkte
PSET Koord., Farbe und
PRESET Koord., Farbe — zeichnen den
angegebenen Punkt in einer bestimmten
Farbe. Die beiden Befehle unterscheiden
sich nur dann, wenn man keine Farbe an-
gibt. PSET benutzt dann die sogenannte
„Vordergrund“ Farbe (normalerweise
schwarz), dagegen benutzt PRESET die
„Hintergrund“ -Farbe (normalerweise
weiß).
7.1.4. Linien und Flächen
Mit dem Befehl „LINE“ (nicht zu verwech-
seln mit der gleichnamigen ROM-Routine
(!), s.u.) kann man Linien und Rechtecke
zeichnen:
LINE Anf - End, Farbe — zeichnet eine
Linie von der Anfangs- zur End-Koordina-
te in der angegebenen Farbe.
Man kann die erste Koordinate weglassen;
dann beginnt die Linie beim zuletzt ange-
sprochenen Punkt.
Wenn keine Farbe angegeben wird, so
wird in schwarz gezeichnet. Der Befehl:
LINE (100,25) - STEP (-20,30)
zeichnet also eine schwarze Linie vom
Punkt (100,25) zum Punkt (80,55).
An den „LINE“-Befehl kann man noch
zwei Zusätze anhängen:
, B — (Box) zeichnet ein Rechteck, bei dem
zwei gegenüberliegende Ecken durch die
angegebenen Koordinaten bestimmt wer-
den. Es wird nur der Rahmen des Recht-
ecks in der angegebenen Farbe gezeich-
net, das Innere bleibt unverändert.
61
, BF — (Box Fill) zeichnet ebenfalls ein
Rechteck, das aber mit der angegebenen
Farbe ausgefüllt ist.
Beispiele zu diesem Befehl sieht man in
Abb. 1.
Mit dem nächsten Befehl können Kreise,
Ellipsen und Ausschnitte aus diesen bei-
den Flächen gezeichnet werden:
CIRCLE Mitte, Radius, Farbe — zeichnet
einen Kreis mit dem angegebenen Mittel-
punkt und Radius. Der Radius wird in Pi-
xeln angegeben (1 Pixel = 1 Grafikpunkt).
Zur Farbe gilt das bisher Gesagte. Es wird
wiederum nur der Rand des Kreises mit
dieser Farbe gezeichnet, das Innere bleibt
unverändert.
Auch an diesen Befehl kann man Zusätze
anhängen:
, Anf, End — bestimmt einen Ausschnitt
des Kreises, der gezeichnet werden soll.
Der Kreis wird vom Winkel Anf bis zum
Winkel End gezeichnet. Die Winkel wer-
den im Bogenmaß angegeben, wobei der
Winkel O nach rechts zeigt, der Winkel PI/2
nach unten.
Falls einer der beiden Winkel negativ ist,
so wird die Randlinie des Kreisausschnitts
mit dem Mittelpunkt des Kreises verbun-
den, so daß eine Art „Kuchenstück“ ent-
steht. Von den Winkeln wird der Betrag
genommen. (Dies entspricht also nicht der
Addition von 2 x PI!)
Leider wird keine Linie zum Mittelpunkt
gezogen, wie man vielleicht annehmen
könnte, sondern es wird ein Kreisaus-
schnitt von 2 Grad gezeichnet. Dieser ist
dann natürlich außen breiter als innen, wo
er fast gar nicht zu sehen ist.
Beispiele zu diesem Befehl sieht man
ebenfalls in Abb. 1.
Es gibt noch einen weiteren Parameter,
den man anfügen kann:
, Quotient — gibt das Verhältnis vom Ra-
dius in Y-Richtung zum Radius in X-Rich-
tung an. Damit ist es möglich, Ellipsen zu
zeichnen.
Der im Befehl angegebene Radius ist im-
mer der größere von den beiden Radien.
Falls der Quotient kleiner als 1 ist, ist also
der Radius in X-Richtung angegeben, an-
sonsten der in Y-Richtung.
Beispiele dazu sind ebenfalls in der Abb. 1
zu sehen.
62
Bei der Verwendung der zusätzlichen Pa-
rameter ist zu beachten, daß durch Kom-
mas angegeben werden muß, um welchen
Parameter es sich handelt. Soll zum Bei-
spiel nur der Quotient angegeben werden,
so lautet der Befehl etwa:
CIRCLE (50,50), 30, , ,, 2
7.1.5 Sonstige Befehle
Es gibt noch zwei weitere Basic-Befehle,
die es erlauben, einen Teil des Bild-
schirms (genauer: des Ausgabefensters)
in eine Array-Variable einzulesen und spä-
ter wieder auszugeben. Diese Befehle
heißen „GET“ und „PUT“, sind aber nicht
mit denselben Befehlen für die Ein-/Aus-
gabe zu verwechseln.
GET Anf - End, Array - liest den Inhalt
des angegebenen Rechtecks in die Array-
Variable ein. Dabei muß beachtet werden,
daß das Array groß genug dimensioniert
wurde, um auch alle Bits speichern zu
können.
Jede Zeile des Bildes wird in Vielfachen
von 16 Bits gespeichert. Falls das Bild
etwa 21 Pixel breit ist, werden für jede
Zeile 32 Bits oder 4 Bytes benötigt.
Damit läßt sich die Größe eines Bildes
berechnen. Sei (X1,Y1) die linke, obere
und (X2,Y2) die rechte, untere Ecke des
Rechtecks, so muß das Array mindestens
4+ (Y2-Y1 + 1) + 2 * INT ((X2 -X1 + 16)
/ 16) Bytes lang sein. Der Ausdruck ab
„2 * INT" gibt an, wieviele Bytes für eine
Zeile benötigt werden. Dieser Wert wird
mit der Zahl der Zeilen multipliziert. Die
„4“ am Anfang des Ausdrucks kommt da-
her, daB neben dem Bild auch dessen
Dimensionen (Breite und Höhe) gespei-
chert werden, die je 2 Bytes benötigen.
Fur den Befehl:
GET (80,25) - (100,55), A%
muB A% mindestens 128 Bytes lang sein.
Wieviele Elemente A% enthalten muB,
sieht man, wenn man sich nochmals die
Größen der einzelnen Zahlen-Typen (vgl.
Teil 1, Peeker 2/84) vor Augen hält:
2 Bytes für ganze Zahlen,
4 Bytes für einfach genaue,
8 Bytes für doppelt genaue rationale
Zahlen.
Das Array A% (ganze Zahlen) muß also
mindestens 64 Elemente enthalten, was
durch „DIM A% (63)“ erreicht wird.
PUT Anf - End, Array, Modus - gibt das
im Array gespeicherte Bild wieder auf dem
Bildschirm an der Koordinate Anf aus.
(„Anf“ ist die Koordinate der linken, obe-
ren Ecke).
Wenn die Koordinate der rechten, unteren
Ecke End nicht angegeben ist, so wird das
Bild mit den ursprünglichen Dimensionen
gezeichnet (s.o.).
Falls aber die zweite Koordinate angege-
ben ist, wird das Bild so gedehnt oder
| | Sg | | Beispiel 2 |
ak Hall
0 LINE (3, 0) x (36, 33), D B
O GET 14, 1) - 135, 32), S$
nf
00 PUT (40+3*1, 60-1/2) - (40+4*1, 60+1*3/2), SÆ
Peeker 8/85
gestaucht, daB es in das angegebene
Rechteck hineinpaßt!
Der Modus, den man hinter dem Befehl
angeben kann, bestimmt die Art, wie das
Bild gezeichnet werden soll. Es kann eines
der folgenden Worte angegeben werden:
PSET kopiert das Bild normal auf den Bild-
schirm.
PRESET kopiert das Inverse des Bildes
auf den Bildschirm.
AND, OR oder XOR verknüpfen das Bild
bitweise mit dem Bildschirminhalt.
Falls kein Modus angegeben ist, wird
„XOR“ angenommen. Mit diesem Modus
kann ein gezeichnetes Bild wieder ge-
löscht werden, wobei der Hintergrund un-
verändert bleibt.
Beispiele für „GET“ und „PUT“ sieht man
in Abb. 2.
7.2. ROM-Routinen
7.2.1. Aufruf
Die im ROM des Macintosh vorhandenen
Zeichenroutinen werden wie alle Program-
me in Maschinensprache mit dem Befehl
„CALL“ aufgerufen (vgl. Teil 2, Peeker 1/
2-85). An die meisten Routinen müssen
Parameter wie z.B. die Koordinaten eines
Rechtecks übergeben werden. Der Aufruf
mit Parametern sieht allgemein so aus:
CALL Name (Par1, Par2, ...)
Die Namen der Routinen sind reservierte
Wörter, die man wie die normalen Basic-
Befehle nicht als Variablennamen benut-
zen darf.
7.2.2. Parameter
Da das ROM des Macintosh nichts Uber
Basic-Variablen und deren Aufbau weiB,
mussen die Parameter der einzelnen Auf-
rufe vom Basic aus simuliert werden, was
in Basic weitaus weniger elegant erscheint
als in Maschinensprache oder in Pascal.
Die von MS-Basic aus erreichbaren Zei-
chenroutinen benötigen verschiedene Ar-
ten von Parametern:
Word (2 Bytes) gibt ganze Zahlen an (16
Bits, vorzeichenbehaftet). Damit werden
z.B. einzelne Koordinaten dargestellt.
Beim Aufruf braucht man hier nur eine
ganze Zahl einzusetzen.
Point (2 Words = 4 Bytes) gibt die Koordi-
naten eines Punktes an.
Peeker 8/85
Beim Aufruf ist es am einfachsten, wenn
man nicht einen Parameter mit 4 Bytes
angibt, sondern zwei Parameter mit je 2
Bytes. In diesem Fall kann man die Koordi-
naten mittels zweier ganzer Zahlen (z.B.
»(X%, Y%)“) angeben.
Alle sonstigen Parameterarten benötigen
mehr als 4 Bytes. Sie werden nicht direkt
an das Maschinenprogramm Ubergeben,
sondern nur ihre Adresse. Diese besteht
aus 4 Bytes.
Falls ein Parameter von der ROM-Routine
an das Basic-Programm zurückgegeben
wird (z.B. die Position des „Pen“, s.u.), so
wird ebenfalls nur die Adresse des Para-
meters übergeben, egal, ob der Parameter
länger als 4 Bytes ist oder nicht.
Wer das jetzt nicht so ganz verstanden hat,
sieht sich am besten die Beispiele zu den
einzelnen Routinen in den Abb. 2 bis 4
an.
Es gibt folgende Parameter, die länger als
4 Bytes sind:
Rect (4 Words = 8 Bytes) gibt die Koordi-
naten eines Rechtecks an in der Reihen-
folge oberer, linker, unterer und rechter
Rand.
Beim Aufruf wird folgendes übergeben:
„VARPTR (R%(0))", wobei R% ein Array
mit mindestens 4 Elementen (ganzen Zah-
len) ist. Die Funktion ,VARPTR" liefert
gerade die Adresse der Array-Elemente.
Pattern (8 Bytes) gibt ein Muster an, mit
dem Flächen gefüllt werden können (wie
z.B. bei „MacPaint“ die Muster in der un-
teren Zeile).
Ein solches Muster besteht aus 8 * 8
Pixeln, benötigt also 8 Bytes. Das erste
Byte entspricht dabei der obersten Zeile
des Musters, das zweite Byte der zweiten
Zeile, usw. In jeder Zeile entspricht das
Pixel ganz links dem höchstwertigen Bit im
Byte oder dem Zahlenwert 128. Das Pixel
ganz rechts entspricht demnach dem nie-
derwertigsten Bit im Byte oder dem Zah-
lenwert 1.
Der Parameter beim Aufruf lautet dann
etwa „VARPTR (P%(0))“, wobei P% wie-
der ein Array mit mindestens 4 Elementen
sein muß.
Cursor (68 Bytes) bestimmt die Gestalt
des Cursors, also das Bild, das mit der
Maus bewegt wird (z.B. der Pfeil).
Die ersten 32 Bytes stellen die sogenann-
ten „Cursordaten“ dar. Dies ist ein Recht-
eck aus 16 * 16 Pixeln, das das Bild des
Cursors angibt.
Doch werden normalerweise nicht alle die-
se Pixel gezeichnet, da sonst der Cursor
Mecki s4
immer rechteckig wäre. Welche Pixel ge-
zeichnet werden sollen, bestimmt die
„Cursormaske“, die aus den nächsten 32
Bytes besteht. Es handelt sich hier wieder
um ein 16*16-Rechteck. Wenn ein Bit der
Maske auf ,1" gesetzt ist, so wird das
entsprechende Bit der Cursordaten auf
dem Bildschirm gezeichnet, ansonsten
bleibt der Hintergrund des Cursors sicht-
bar. Beim normalen Pfeil hat die Maske
ebenfalls Pfeilform, ist aber um ein Pixel
breiter als die Cursordaten. Dies ergibt
einen weißen Rand um den Pfeil.
Mit dem Cursor will man nun nicht eine
Fläche von 16 * 16 Pixeln auswählen,
sondern einen ganz bestimmten Punkt.
Beim Pfeil ist dies z.B. die Pfeilspitze, bei
einem kreuzförmigen Cursor die Mitte des
Kreuzes. Dieser Punkt (auch „HotSpot“
genannt) wird durch die letzten 4 Bytes
bestimmt. Diese 4 Bytes haben den Auf-
bau von „Point“ (s.o.). Ein Wert von (0,0)
steht für die linke, obere Ecke, (15,15) für
die rechte, untere Ecke. Die erste Zahl ist
die Y-, die zweite die X-Koordinate.
Beim Aufruf wird folgendes übergeben:
„VARPTR (C%(0))“, wobei C% ein Array
mit mindestens 34 Elementen sein muß.
Nach diesen sehr theoretischen Ausfüh-
rungen kommen wir nun zu den einzelnen
Routinen und damit auch zu Beispielen, an
denen das vorher Gesagte mit etwas mehr
Leben erfüllt werden soll.
7.2.3. Cursor-Routinen
CALL HideCursor — diese Routine hat
keine Parameter. Bei jedem Aufruf der
Routine wird eine Variable des Betriebssy-
stems, der sogenannte „CursorLevel”,
um 1 erniedrigt.
Der „CursorLevel“ ist eine vorzeichenbe-
haftete 16-Bit-Zahl. Wenn diese Zahl ne-
gativ ist, ist der Cursor nicht sichtbar.
Mit einem Aufruf von ,HideCursor" er-
reicht man also, daß der Cursor nicht mehr
zu sehen ist. (Dies kommt z.B. beim Boo-
ten des Mac vor, wenn das Fenster mit der
Meldung „Willkommen zu Macintosh” er-
scheint.)
CALL ShowCursor — auch diese Routine
hat keine Parameter. Sie ist das Gegen-
stück zur „HideCursor“-Routine, denn sie
erhöht die Variable „CursorLevel“ um 1.
Falls dadurch die Variable positiv (also grö-
Ber oder gleich 0) wird, dann wird der
Cursor wieder sichtbar. Zu beachten ist
dabei, daß der „CursorLevel“ vom Be-
triebssystem her nie größer als Null wird.
So hat z.B. die Folge:
63
CALL ShowCursor
CALL ShowCursor
CALL ShowCursor
CALL HideCursor
die Wirkung, daß der CursorLevel auf -1
steht und der Cursor also nicht sichtbar ist.
CALL ObscureCursor — ebenfalls eine
Routine ohne Parameter. Sie macht fol-
gendes:
Zunåchst ruft sie ,HideCursor" auf, das
heißt, daß der Cursor verschwindet. An-
schließend wird in einer bestimmten Varia-
blen des Betriebssystems notiert, daß der
Cursor mit „ObscureCursor“ versteckt
wurde.
Sobald der Benutzer danach die Maus und
damit den Cursor bewegt, wird sofort die
Routine „ShowCursor“ aufgerufen; der
Cursor wird wieder sichtbar.
Die Aufgabe von „ObscureCursor“ ist al-
so, den Cursor solange verschwinden zu
lassen, bis die Maus bewegt wird. Auch
diese Routine wird manchmal beim Mac
verwendet, z.B. verschwindet beim Micro-
soft Basic der Pfeil, sobald eine Taste ge-
drückt wird, wenn gerade kein Programm
läuft. Der Pfeil wird allerdings sofort wieder
sichtbar, wenn man die Maus bewegt.
CALL InitCursor — diese Routine hat kei-
ne Parameter. Sie bewirkt, daß der Cursor
die gewohnte Form eines Pfeils bekommt,
der nach links oben zeigt. Außerdem wird
der „CursorLevel“ (s.o.) auf 0 gesetzt, so
daß der Cursor sichtbar wird.
CALL SetCursor (VARPTR (C%(0))) —
diese Routine verändert die Form des Cur-
sors so, wie im Parameter C% angege-
ben. Der Aufbau und die Länge von C%
wurde weiter oben schon erklärt.
Ein Beispiel zu dieser Routine ist in Abb. 3
gegeben. Das Programm liest die neue
Gestalt des Cursors aus „DATA“-Zeilen
ein und verändert den Cursor entspre-
chend. Der neue Cursor ist im Bild in der
Ecke des großen Quadrats zu sehen.
7.2.4. Textausgabe
Es gibt 4 Routinen, mit denen die Art, wie
Text ausgegeben wird, veråndert werden
kann. Da in jedem geöffneten Fenster eine
andere Art der Textausgabe möglich ist,
wird mit diesen Routinen nur die Ausgabe-
art des aktiven Fensters veråndert. Bei
einem laufenden Basic-Programm ist dies
das Ausgabefenster. Die anderen Fenster
(z.B. das Listfenster) werden dadurch
nicht verändert.
CALL TextSize (SIZE) — verändert die
Größe der Buchstaben. Jeder Text, der
nach diesem Aufruf ausgegeben wird, hat
64
é File Edit Control
VEER,
OOOOOD Be
wë DOM
mDLDDURBBSUDDDE
Seiler BODODM
Be 2
et
gt EEE
"ee
59 REM
øse 1.
Fed EE
Abb. 3
die Größe SIZE. Diese Routine wird z.B.
dann aufgerufen, wenn man etwa in
» MacWrite" eine andere Zeichengröße
wählt.
CALL TextFont (FONT) — wählt einen
neuen Zeichensatz aus. FONT ist eine
Nummer, die den Zeichensatz bestimmt.
Es gibt die folgenden Nummern:
0 — System-Zeichensatz
1 — normaler Basic-Zeichensatz
2 — New York
3 — Geneva
4 — Monaco (nicht proportional!)
5 — Venice
6 — London
7 — Athens
8 — San Francisco
9 — Toronto
CALL TextFace (FACE) — bestimmt die
Art, wie die einzelnen Buchstaben ausge-
geben werden. FACE ist dabei eine Zahl,
deren einzelne Bits die folgende Bedeu-
tung haben:
Bit 0 (01) — Bold (fett)
Bit 1 (02) — Italic (kursiv)
Bit 2 (04) — Underline (unterstrichen)
Bit 3 (08) — Outline (umrahmt)
Bit 4 (16) — Shadow (mit Schatten)
Bit 5 (32) — Condense (Schmalschrift)
Bit 6 (64) — Extend (breit)
60 D ATA EE 1, l, L en
61 DATA 100001
62 DATA — — 1000000001
— 3 DATA __ 100000060001 _
10 DIM 24135) : CLS : LINE (47, 47)- (163, 163). B
20 FOR 1=0 TO 15 : D=0 : M=0 : F=- 1
30 FOR ]=0 TO 15 : READ A$ : DX=-F*(A $=" ]' )
31 MX=-F*(A $: "_") : D=2*D+DX : M=22M+MX
32 IF MX=0 THEN 40 ELSE X=50+7*] : Y=50+7"]
33 IF DX=0 THEN LINE (X,Y)-STEP(S,51,E
34 IF DX<0 THEN LINE (X,Y)-STEP(5,5) EF
40 F=AES(F) : NEXT : CÆ(I =D : CSC, 16)=M
50 NEXT : READ CZ(32) C£(33)
51 CALL SETCURSOR (VARPTR(CZ(0)1)) : END
ESG VT
A
DAMM Addi
Die einzelnen Bits können wahlweise
kombiniert werden (wobei nicht alle Kom-
binationen gut zu entziffern sind). Wenn
z.B. FACE = 70 ist, so wird nach dem
Aufruf jeder Text in breiter Schrift, unter-
strichen und zudem kursiv ausgegeben.
Auch diese Wahlmöglichkeiten kennt man
z.B. von , MacWrite".
CALL TextMode (MODE) — bestimmt die
Art, wie der auszugebende Text mit dem
Bildschirminhalt kombiniert wird. Es gibt
die folgenden Werte:
0 — Copy (direkte Kopie)
1 - Or (normale Ausgabeart)
2 — Xor (s.o.)
3 — Bic (s.u.)
Die Ausgabeart „Bic“ bedeutet, daß die
Buchstaben in weiß gezeichnet werden.
Welche Wirkung diese einzelnen Arten bei
unterschiedlichem Hintergrund haben,
zeigt die Abb. 4.
7.2.5 Der Pen
Der sogenannte „Pen“ ist der eigentliche
Zeichenstift des Macintosh. Jedes Fenster
besitzt seinen eigenen Stift. Dieser Stift
hat eine ganze Reihe von Eigenschaften:
PnLoc gibt die Position des Stifts im je-
weiligen Fenster an. Dies ist gleichzeitig
die Position, an der der nächste Text aus-
gegeben wird.
Peeker 8/85
r
é File Edit Control
Beispiel 4 E SE SV
ID mieg 11 WI i.
å REN EEE EBENEN Re Ye
TE 93.370 vie man sehen I
20 P%(1)=85*258 : NEXT
“ 30 CALL BACKPAT (VARPTR (P%(0))) : CLS
_40 LINE (200,0)-(300,100), 33, BF
50 LINE (0,0)-(100,100), 30, BF
160 CALL FILLRECT (VARPTR (R%(0)), VARPTR (P%(0)))
70 PRINT : FOR I=0 TO 3 : CALL TEXTMODE (1)
Abb. 4
PnSize gibt die Größe des Stifts an. Der
Stift hat eine rechteckige Form, deren Hö-
he und Breite verändert werden kann.
„PnLoc“ gibt dabei die Position der linken,
oberen Ecke des Stifts an.
PnMode gibt die Art an, wie die „Farbe“
des Stifts mit dem Bildschirm kombiniert
werden soll (vgl. oben die Routine „Text-
Mode“).
PnPat stellt die „Farbe“ des Stifts dar. Es
handelt sich um ein „Pattern“ (Muster aus
8 * 8 Pixeln).
PnVis gibt an, ob der Stift sichtbar ist oder
nicht. Falls hier ein negativer Wert vorhan-
den ist, dann ist der Stift nicht sichtbar (vgl.
„CursorLevel“ weiter oben). Dies hat die
Wirkung, daß alles, was mit dem Stift ge-
zeichnet wird, nicht sichtbar ist.
Alle diese Eigenschaften können mit den
nachfolgenden Routinen verändert
werden:
CALL HidePen - erniedrigt „PnVis“ um 1.
Dadurch wird der Pen unsichtbar.
CALL ShowPen - erhöht „PnVis“ wieder
um 1. Dies ist also das Gegenstück zu
„HidePen“.
Im Gegensatz zu „CursorLevel” kann
„PnVis“ auch größer als Null werden, so
daß man hier aufpassen muß, daß man
von beiden Routinen dieselbe Anzahl ver-
wendet.
Peeker 8/85
CALL GetPen (VARPTR (L%(0))) — gibt
die momentane Position des Zeichenstifts
in die Variable L% zurück. L% ist dabei ein
Array mit mindestens zwei Elementen,
wobei L%(0) die Y-Koordinate und L% (1)
die X-Koordinate ist.
Dies ist die einzige ROM-Routine, die eine
Information an das Basic zurückgibt. Des-
halb muß auch hier die Funktion
, VARPTR" verwendet werden, obwohl
der Parameter selbst vom Typ „Point“,
also nur 4 Bytes lang ist.
CALL PenSize (B, H) — bewirkt, daß der
Stift ein Rechteck mit der Breite B und
Höhe H wird. Beide Parameter haben die
Einheit Pixel.
CALL PenMode (MODE) — setzt „Pn-
Mode“ auf den Wert von MODE. Die mög-
lichen Werte sieht man in der obigen Ta-
belle, die bei „TextMode“ angegeben ist.
ACHTUNG: Bei „PenMode“ muß zu je-
dem dieser Werte noch 8 addiert werden!
MODE liegt demnach im Bereich 8 bis 11,
wobei z.B. 10 die Bedeutung „Xor“ hat
(10 = 8 + 2).
(Fur die interessierten Leser: dies hångt
damit zusammen, daß mit dem Pen kein
Text ausgegeben wird, sondern ein Mu-
ster, nämlich „PnPat“. Bei der Ausgabe
von Text muß MODE eine Zahl kleiner als
8 sein, bei der Ausgabe eines Musters
dagegen größer als 7.)
æ MECkI 44
CALL PenPat (VARPTR (P%(0))) — verån-
dert „PnPat“, also das Muster des Stifts,
zu dem Muster, das in P% angegeben ist.
P% ist vom Typ „Pattern“, der weiter oben
erklärt wurde.
CALL PenNormal - bringt den Stift wieder
in seinen „normalen“ Zustand. Dabei wer-
den die folgenden Aktionen ausgeführt:
„PnSize“ wird auf (1,1) gesetzt (1 Pixel
breit, 1 Pixel hoch).
„PnMode“ wird auf „Copy“, also auf 8
gesetzt.
„PnPat“ wird auf schwarz gesetzt, d.h.
daß alle 8 * 8 Bits auf 1 sind.
Die beiden anderen Eigenschaften des
Stifts, „PnLoc“ und „PnVis“, bleiben un-
verändert.
CALL MoveTo (X, Y) — bewegt den Stift
ohne zu zeichnen zu dem Punkt mit den
angegebenen (absoluten) Koordinaten.
CALL Move (DeltaX, DeltaY) — bewegt
den Stift ohne zu zeichnen horizontal um
DeltaX und vertikal um DeltaY weiter (rela-
tive Koordinaten).
CALL LineTo (X, Y) — wie „MoveTo”, nur
wird diesmal bei der Bewegung eine Linie
gezeichnet. Dabei werden nun die Eigen-
schaften des Stifts (Muster, Größe, usw.)
sichtbar.
CALL Line (DeltaX, DeltaY) — wie „Line-
To“, nur sind die Koordinaten relativ ange-
geben.
Diese Routine hat leider denselben Na-
men wie der Basic-Befehl „LINE“ (s.o.).
Beispiele zu diesen Routinen sieht man in
der Abb. 5.
7.2.6. Der Hintergrund
Es gibt eine Routine, mit der man das
Muster verändern kann, mit dem norma-
lerweise der Hintergrund ausgefüllt wird.
CALL BackPat (VARPTR (P%(0))) — be-
wirkt, daß fortan der Hintergrund mit dem
Muster in P% (Pattern) ausgefüllt wird.
Dieses Muster wird z.B. dann verwendet,
wenn der Basic-Befehl „CLS“ ausgeführt
wird. Dadurch kann man das ganze Aus-
gabefenster mit einem eigenen Muster
ausfüllen (siehe Abb. 4).
7.2.7. Flächen zeichnen
Es gibt verschiedene Flächen, die man mit
den ROM-Routinen zeichnen kann:
Rect ist ein ganz normales Rechteck.
Zur Beschreibung dieser Fläche genügt
ein Parameter vom Typ „Rect“ (s.o.).
65
Oval ist eine Ellipse. Sie wird durch ein
Rechteck definiert, dessen Höhe und Brei-
te gerade die Höhe und Breite der Ellipse
angeben.
Zur Beschreibung dieser Fläche genügt
also ebenfalls ein Parameter vom Typ
„Rect“.
RoundRect ist ein Rechteck, bei dem die
Ecken abgerundet sind (z.B. der gesamte
Schreibtisch des Mac). Die runden Be-
grenzungslinien in den Ecken sind je ein
Viertel einer Ellipse.
Um diese Fläche zu beschreiben reicht ein
Parameter vom Typ „Rect“ nicht aus. Zu-
sätzlich benötigt man noch die Breite und
die Höhe der Ellipse, die die abgerundeten
Ecken definieren.
Arc ist ein Ausschnitt einer Ellipse, der
durch zwei Winkel gegeben ist (aber an-
ders als bei „CIRCLE“!).
Man benötigt zur Beschreibung dieser Flä-
che einen Parameter vom Typ „Rect“ (de-
finiert die Ellipse) und die zwei Winkel.
Diese Winkel sind hier im Gradmaß ange-
geben. Ein Winkel von O Grad zeigt nach
oben, einer von 90 Grad nach rechts. Der
erste Winkel ist der Anfangswinkel, wäh-
rend der zweite Winkel angibt, wie weit
und in welche Richtung vom Anfangswin-
kel aus gezeichnet werden soll. Beispiele:
90 Grad, 180 Grad — zeichnet den Aus-
schnitt von 90 bis 270 Grad.
90 Grad, -180 Grad — zeichnet den Aus-
schnitt von 90 bis -90 Grad.
Jede dieser 4 Flächen kann nun auf ver-
schiedene Arten gezeichnet werden:
Frame — die Fläche wird mit dem „Pen“
umrahmt. Dabei kommen alle Eigenschaf-
ten des Pen zum Tragen, also die Größe,
das Muster, usw.
Der Pen wird dabei so geschickt geführt,
daß nur innerhalb der angegebenen Flä-
che gezeichnet wird. Dies ist deshalb nicht
trivial, weil der Pen ja ein Rechteck mit
veränderlicher Größe ist.
é File Edit Control
Beispiel 5
10 Tð FOR 1=0 T0 3 Ka `: READ ra?
20 NEXT : DATA -3085, 12336, 16191, 0
30 CLS : CALL PENSIZE (5,10) : CALL MOVETO (10,10)
140 CALL LINE (0,40) : CALL LINE (40,0)
50 R&(0)=10 : RÆ(2)=60
aa: :
| TT |
60 FOR I=0 TO 360 STEP 45 : RÆ(1)=I : R%(3)=70+1
170 CALL FRAMEARC (VARPTR (R%(0)), 0,1)
80 NEXT : R%(0)=80 : R%(2)=200 : RÆ(3)=470
90 CALL FILLRECT (VARPTR (R%(0)), VARPTR (P&(0)))
100 td SE on —
Paint — die Fläche wird in der sogenann-
ten „Vordergrundfarbe“ gezeichnet (nor-
malerweise in schwarz).
Erase — zeichnet die Fläche in der „Hin-
tergrundfarbe“, normalerweise in weiß.
Dadurch wird diese Fläche praktisch ge-
löscht.
Invert — wandelt alle Pixel in der Fläche in
das logische Gegenteil um: aus weiß wird
schwarz und umgekehrt.
Fill — füllt die Fläche mit einem bestimm-
ten Muster (Pattern, s.o.). Dieses Muster
muß man bei dem Befehl zusätzlich an-
geben.
Für jede der 4 Flächen stehen also 5 ver-
schiedene Zeichenmöglichkeiten zur Ver-
fügung, was eine Zahl von 20 verschiede-
nen Routinen ergibt.
Die Namen dieser Routinen setzen sich
wie folgt zusammen: Das erste Teilwort
gibt die Zeichenart an (z.B. „Erase“), das
zweite Teilwort die Form der Fläche (z.B.
„Oval“). Der Name dieser Routine lautet
dann „EraseOval“.
Beispiele zu den möglichen Aufrufen mit
Parametern sieht man in den Abb.4 und 5
und in den nachfolgenden Beispielen:
CALL PaintRect (VARPTR (R%(0)))
CALL FillOval (VARPTR (R%(0)), VARPTR
(P% (0)))
CALL InvertRoundRect (VARPTR (R% (0)),
B, H)
CALL EraseArc (VARPTR (R%(0)), A, W)
CALL FrameRect (VARPTR (R%(0)))
Dabei sei R% ein Array mit 4 Elementen
(Rect), P% ebenfalls ein Array mit 4 Ele-
menten (Pattern), B und H die Breite und
Höhe einer Ellipse, A und W zwei Winkel.
Computer-unterstiitztes Lernen für Beruf, Weiterbildung, Schule NEU: Rücknahme von Lern-
LK. -
N INTUS SOFTVVARE
Kaiserstraße 21, 7890 Waldshut, Telefon 07751/7920
66
@ Programme für Apple lle/c/teilw. +.
@ Demo-Diskette mit 8 Programmen
und 7 Denkspielen DM 10,-
@ Gesamtkatalog mit über 160 Titeln
kostenlos.
programmen (wenn Sie den
Stoff intus haben) zu 50 %
des Kaufpreises bei Kauf
eines anderen intus-Lern-
programmes.
Peeker 8/85
von Ralf Knoke
Die abgedruckte Programmsammlung
GRAFIK.DEMOS soll ein Beispiel dafür
sein, wie man auch als Anfänger mit kur-
zen Programmschritten schöne Grafiken
im HGR-Bereich auf dem Apple Il erzeu-
gen kann. Sie soll zur Nachahmung anre-
gen. Es werden verschiedene Grafiken,
sowohl zwei- wie auch dreidimensional,
gezeigt. Im Listing sind die einzelnen Teile
durch entsprechende REMs voneinander
getrennt.
Vor den eigentlichen Zeichenanweisun-
gen (HPLOTs) werden meistens die Koor-
dinaten der Endpunkte festgelegt. Dies er-
scheint immer dann sinnvoll, wenn Punkte
mehrmals angesteuert werden müssen.
Das war allerdings nicht überall der Fall,
weshalb manche Punkte direkt in der
HPLOT-Anweisung angegeben werden.
Hierzu ist für alle, die es selbst versuchen
wollen, noch zu sagen, daß die Punkte
Grafik-Demonstrationen
natürlich nicht willkürlich gewählt worden
sind. Man muß ihre Lage mit dem Compu-
ter ausprobieren oder eine Skizze auf ei-
nem karierten DIN-A4-Blatt anfertigen. Ei-
ne Kästchenlinie entspricht dabei 5
HPLOT-Punkten. Das hört sich schwieri-
ger an, als es ist. Nach einiger Zeit hat man
jedoch „den Bogen raus”.
Arbeitet man im 80-Zeichenmodus, so
sollte man in Zeile 1720 die Variable X auf
6 vergrößern und in den HTAB-Anweisun-
gen die addierten Zahlen verdoppeln, z.B.
5 auf 10, 30 auf 60 usw. Dadurch wird die
Beschriftung eindeutiger.
Mit den Schleifen, die z.B. in den Zeilen
1850-1920 vorkommen, erreicht man, daß
Linien im 3-D-Bereich, die eigentlich nicht
sichtbar sind, nur unterbrochen dargestellt
werden. Dies ist einfach, wenn die Linien
waagerecht, senkrecht oder im 45 Grad
Winkel stehen, sonst gibt es Schwierigkei-
Applepreise = Mondpreise?
Die sog. Preisbindung der zweiten Hand
(= vertikale Preisbindung = Festlegung
der für den Einzelhandel verbindlichen
Endabnehmerpreise durch den Produzen-
ten) war früher für Markenartikel schlecht-
hin zulässig. Seit 1974 können nur noch
Verlagserzeugnisse der vertikalen Preis-
bindung unterworfen werden, während für
Markenartikel bestenfalls die sog. unver-
bindliche Preisempfehlung zulässig ist.
Als Mondpreis definiert man den „Miß-
brauch von vertikalen Preisempfehlungen,
indem die empfohlenen Bruttopreise zu
hoch festgesetzt werden, um dem Einzel-
handel die Unterbietung auch bei üblicher
Kalkulation zu ermöglichen und damit dem
Kunden besondere Preiswürdigkeit vorzu-
täuschen“ („Gablers Wirtschaftslexikon“).
Die unverbindliche Preisempfehlung muß
„in der Erwartung ausgesprochen werden,
daß der empfohlene Preis dem von der
Mehrheit der Empfehlungsempfänger vor-
aussichtlich geforderten Preis entspricht“
($ 38a GWB). Das Bundeskartellamt ist in
diesem Punkt nicht nur ungewöhnlich pe-
nibel, sondern hinsichtlich der Geldbußen
auch ausgesprochen drakonisch. Vor die-
sem Hintergrund muß man sich fragen, ob
Peeker 8/85
die unverbindlichen Preisempfehlungen
für Apple-Produkte Mondpreise sind, denn
für eine Reihe von Produkten ist der
„Marktpreis“ (= vom Einzelhändler üb-
licherweise geforderter Preis) oft bis zu
oder teils sogar über 50% niedriger als der
empfohlene Preis. Einige Beispiele (auf-
grund der Apple-Preisliste, Stand März
1985):
Apple Ile Grundgerät: empfohlen DM
3400,-, dagegen z.B. bei Vobis DM 1993, -
Apple llc Grundgerät: empfohlen DM
3750,-, dagegen z.B. bei ProSoft DM
2649, -
512K-Erweiterung für Macintosh: empfoh-
len DM 3780,- dagegen z.B. bei Schap-
pach DM 1680,- oder bei Hoco DM 1690,-
Macintosh Grundgerät mit 512K: empfoh-
len DM 12250,-, dagegen z.B. bei Koslik
DM 9500,-
Die Vergleichspreise sind Anzeigen ent-
nommen. Ergiebiger ist die Auswertung
der tatsächlichen Preislisten der Einzel-
händler.
Für mich als Redakteur sind diese Preisab-
weichungen — gelinde gesagt — ein Arger-
nis. Als ich den Testbericht zu der AP33
4 hobby 44
ten, da der Computer die Linien bricht.
Beim N-Eck und bei der Tortenstück-Gra-
fik wurden Eck- bzw. Kreisformeln not-
wendig. In einem kurzen Artikel ist es
schwierig, ihre Arbeitsweise Anfängern
einfach und deutlich zu erklären. Ein Tip:
Experimentieren Sie etwas, dann wird Ih-
nen alles klar. Denn das Programm soll ja
zum Experimentieren anregen. Für Fort-
geschrittene sind die Formeln leichter zu
durchschauen, zumal sie wohl auch öfter
eingesetzt werden. Abschließend ist zu
sagen, daß die Programme einen Mittel-
weg zwischen Übersichtlichkeit und Kürze
beschreiten. Aus diesem Grunde wurde
auch bewußt auf ein Menü zur Auswahl
der einzelnen Figuren verzichtet. Wer dies
nicht missen möchte, wird das Problem
auch als Anfänger durch Eingabe eines
Strings und GOTO bzw. GOSUB lösen
können.
Und nun viel Spaß!
(= 1024K-RAM-Karte) der Firma IBS er-
stellte, die im Handel für ca. DM 3400,-
(mit geringfügigen Schwankungen nach
oben und unten) erhältlich ist, bot sich ein
Preisvergleich zu der 512K-Mac-Erweite-
rung an. Welchen Preis sollte ich jedoch
hier ansetzen, den „empfohlenen“ Händ-
lerpreis von DM 3780,- oder den um über
50% niedrigeren „üblichen“ Håndlerpreis
von ca. DM 1700,-? Wenn Schulen und
Universitäten Rabatte erhalten, dürften
wohl die empfohlenen Preise und nicht die
Marktpreise als Bezugsbasis dienen. Je-
denfalls fiele es dem „Empfehlungsemp-
fänger“ dann nicht schwer, ca. 20-30%
abzuziehen, denn damit läge er immer
noch über dem Marktpreis. Also nur eine
Augenwischerei? u u
Ich kann hier nur hoffen, daB man sich zu
einer realistischeren Preispolitik ent-
schließt oder Listen mit „unverb. empf.
Verkaufspreisen incl. MwSt.“ gar nicht
mehr an Endabnehmer abgibt, denn schon
manche „empfohlene“ Augenwischerei
ist ins Auge gegangen.
U. Stiehl
67
GRAFIK.DEMOS
1000 REM Ralf Knoke
1010 REM Oktober 1984
1020 :
1100 REM Raster-Muster
1110 HOME : HGR2 : HGR :M = 7
1120 HCOLOR= M
1130 FOR I = Ø TO 279 STEP 3: HPLOT I,@ TO I,191: NEXT
1140 FOR I = Ø TO 159 STEP 3: HPLOT 1,1 TO 279,I: NEXT
1150 IF M = 7 THEN M = Ø: GOTO 1120
1160 GET A$: HOME
1170 HGR2
1180 :
1200 REM Fünfeck-Stern
121Ø HCOLOR= 7
1220 HPLOT 85,15 TO 14Ø,18Ø TO 195,15 TO 52,117 TO 228,117
TO 85,15
1230 GET A$: HGR2 `
124Ø :
1300 REM Keplerscher Sternkörper
1310 A = 14Ø:B = 95:C = 5:D = 227:E = 67 :F =
= 87:I = 53:J = 23:K = 123:L = 5
HCOLOR= 3
1320 HPLOT A,B TO A,C
1330 HPLOT A,B TO D,E
1340 HPLOT A,B TO F,G
1350 HPLOT A,B TO H,G
1360 HPLOT A,B TO I,E
1370 HPLOT F,J TO I,K TO D,K TO H,J TO A,L TO F,J
1380 HPLOT F,J TO A,39 TO H,J TO H,M TO I,K TO N,A TO A,L
TO 176,A TO D,K TO F,M TO F,J
1390 HPLOT 120,157 TO H,G TO H,133: HPLOT 161,158 TO F,G TO
F,134
1400 HPLOT 2Ø7,93 TO D,E TO F,57: HPLOT 16Ø,33 TO 14Ø,5 TO
12Ø,33: HPLOT 87,57 TO I,E TO 73,93
141Ø :
1500 REM Stern-Löscher
151Ø GET A$: HCOLOR= 7
1520 FOR I = Ø TO 140: HPLOT I,Ø TO I,191: HPLOT 279 - L,Ø
TO 279 — 1,191: NEXT
153Ø GET A$
154Ø :
16ØØ REM Pythagoras
1610 HGR2 : HCOLOR= 3
1620 A = 156:B = 169:C = 109
1630 HPLOT B,D TO B,A TO C,A
84,81 TO 99,55 TO E,F T
1640 GET A$
1659 :
1700 REM Farbtafel
171Ø HOME : HGR
1728 X = 3:F= Ø
1730 VTAB (22): PRINT "FARBE : ";
1740 VTAB (24): HTAB (X): PRINT F;: HTAB (X + 5): PRINTF +
1;: HTAB (X + 10): PRINT F + 2;: HTAB (X + 15): PRINT
F + 3;: HTAB (X + 20): PRINT F + 4;: HTAB (X + 25):
PRINT F + 5;: HTAB (X + 30): PRINT F + 6;: HTAB (X +
35): PRINTF +7;
1750 M = Ø:D = 1
1760 HCOLOR= M
1770 FOR I = @ TO 279: HPLOT I,@ TO I,159
1780 IF I = D x 35 THEN D = D + 1:M = M + 1: HCOLOR= M
1790 NEXT
1799 :
1800 REM 3-D-Quader
181Ø GET A$: HOME : HGR : HGR2
1820 HCOLOR= 7: HPLOT 65,85 TO 155,85 TO 155,175 TO 65,175
TO 65,85 TO 128,21 TO 218,21 TO 218,111 TO 155,175
1830 HPLOT 155,85 TO 218,21
:D = GBE = 124:F = 70
TO C,D TO B,D TO E,F TO CD TO
0 151,25 TO 196,51 TO B,D
1840 A = 128:B = 111
1850 FOR I = 1 TO 22
1860 HPLOT A,B TO A + 2,B:A = A + 4: NEXT
1870 A = 128:B = 21
1880 FOR I = 1 TO 22
1890 HPLOT A,B TO A,B + 2:B = B + 4: NEXT
1900 A = 128:B = 111
1910 FOR I = 1 TO 16
1920 HPLOT A,B TO A — 2,B + 2:A = A - 4:B = B + 4: NEXT
1930 :
2000 REM Pyramide
2010 GET A$: HGR2 : HCOLOR= 7
2020 HPLOT 126,157 TO 149,36 TO 83,114 TO 126,157 TO
216,157 TO 149,36 TO 173,114
2030 A = 83:B = 114
2040 FOR I = 1 TO 22: HPLOT A,B TO A + 2,B:A = A + 4
2050 NEXT
68
216:B = 157
2070 FOR I = 1 TO 11: HPLOT A,B TO À — 2,B - 2:A = À - 4:B
— 4: NEXT
N-Eck
211Ø GET A$
2120 Z = 1
2130 N = INT (( RND (1) * 120))
2140 HGR2
2150 HCOLOR= 3
2160 PI = 4 * ATN (1):Q = 2 * PI / N
2170 A = 220:B = 96
2180 C = A:D = B
2190 G = 5
2200 FOR I = 1 TO N
2210 X = 80 * COS (Q * I) + 140:Y =
2220 HPLOT X,Y TO 140,96: HPLOT X,Y
2230 NEXT
2240 REM Wird in Zeile 2260 "Z" vergföBert,
2250 REM dann finden mehr Durchlåufe statt.
2260 Z = Z + 1: IF Z = 3 THEN GOTO 2300
2270 GET A$: GOTO 2130
80 * SIN (Q * I) + 96
TO C,D:C = X:D = Y
2280 :
2300 REM Tortenstück-Grafik
2310 GET A$
2320 PI = 3.14159265357
2330 DEF FN DR(W) = (W * PI) / 180
2340 NX = 140
2350 NY = 96
2360 RA = 95
2378 HGR2 : HCOLOR= 7
2380 GOSUB 3000
2390 RA = 95 / 2: GOSUB 3000
2400 FOR I = 1 TO 3
2410 WB = FN DR(I * 120)
2420 X = RA * COS (WB):Y = RA * SIN (WB)
2430 X = NX + X:Y = NY + Y
2440 HPLOT NX,NY TO X,Y
2450 NEXT
2460 FOR I = 1 TO 3
2470 X1 = NX + 95 * COS ( FN DR(I * 120 + 60)):Y1 = NY + 96
* SIN ( FN DR(I * 120 + 6Ø))
2480 X2 = NX + 95 / 2 * COS ( FN DR(I * 120 + 60)):Y2 = NY
+ 95 / 2 * SIN ( FN DR(I * 120 + 60))
2490 HPLOT X1,Y1 TO X2,Y2
2500 NEXT
2510 GET A$: HOME : TEXT : END
3000 FOR I = Ø TO 360
3010 WB = FN DR(I)
3020 X = RA * COS (WB):Y
3030 X = NX + X:Y = NY +
3040 IF I = Ø THEN HPLOT
3Ø5Ø HPLOT X1,Y1 TO X,Y
3Ø6Ø X1 = X:Y1 = Y P
3Ø7Ø NEXT
RETURN
RA * SIN (WB)
>< < H
,Y: GOTO 3060
Diversi-DOS 2-C
Die 4-C-Dateien HELLO und ASMDIV åndern ein im
Speicher befindliches Original-DOS-3.3 in Diversi-DOS
4-C um. Trotz gleicher Dokumentation gilt dies nicht får
die Dateien HELLO und ASMDIV von Version 2-C, die
auf der Peeker-Sammeldisk # 6 enthalten sind (s.
Peeker, Heft 6/85, S. 74). Der Einfachheit halber haben
wir deshalb zusåtzlich die 4-C-Dateien auf die Sammel-
disk # 8 aufgenommen. Die Implementierung unter 4-C
ist Ubrigens noch einfacher: Original-DOS-3.3 booten,
dann Sammeldisk # 8 einlegen und HELLO starten
(RUN HELLO). Wenn das Menü erscheint, ist DOS 3.3
bereits gepatcht. Hauptmenü verlassen und mit INIT
Leerdiskette formatieren. Dies ist alles.
Inzwischen ist die Firma DSR umgezogen. Die neue
Anschrift lautet:
Diversified Software Research, 34880 Bunker Hill,
Farmington, MI 48018-2728, USA.
Peeker 8/85
Ein Einzeiler
von Hans-Peter Lendle
ZEICHENJAGD ist ein kleines Spiel und
Trainingsprogramm mit der Tastatur des
Computers. Ein einzelner Buchstabe er-
scheint irgendwo auf dem Bildschirm und
muß innerhalb einer bestimmten Zeit mit
der entsprechenden Taste „erwischt“
werden. Ein Tonsignal belohnt den Erfolg,
und die Wartezeit wird um eine Stufe ver-
kürzt. Erreicht man Stufe 2, so kommt der
nächste Buchstabe im Alphabet dazu,
ebenso wenn man von Stufe 1 auf 2 abfällt
(damit der nächste Aufstieg beschwerli-
cher wird).
Spielverlauf
Tippt man keine oder die falsche Taste, so
wird die Wartezeit um eine Stufe verlän-
gert. Fällt man auf Stufe 9 zurück, wird ein
Buchstabe weggenommen (zur Erleichte-
rung). Vier Buchstaben bleiben jedoch in
jedem Fall übrig.
Das Programm startet mit Stufe 0 und
Buchstabe „A“. Es „bremst“ sich, wenn
keine Eingabe erfolgt, auf Stufe 9 ab. Die-
se Stufe ist bequem für das „Ein-Finger-
Adler-Suchsystem“ geeignet. Wird „A“
eingetippt, so erhöht sich die Spielstufe
auf 2, bei der der Buchstabe „B“ hinzu-
kommt. Mit etwas Geschick gesellen sich
auch noch „C“ und „D“ dazu, mit sinken-
der Wahrscheinlichkeit weitere Buchsta-
ben — man fällt zurück.
Jetzt muß man sich Buchstabe um Buch-
stabe und immer wieder Stufe um Stufe
hocharbeiten. Stufe 1 mit allen Buchsta-
ben des Alphabets ist wohl sogar für
,Zehn-Finger-Profis" auf die Dauer
schwer zu halten.
Der aktuelle Leistungsstand steht oben in
der Mitte des Bildschirms: die Spielstufe
invers als Ziffer von 1 bis 9, der letzte zu
erwartende Buchstabe blinkend daneben.
Programmbeschreibung
Die Beschreibung zeigt, daß das Pro-
gramm durchaus nicht linear abläuft. Wenn
man alles in einer Zeile unterbringen will,
braucht man zwangsläufig etwas, was IF-
THEN-ELSE in Applesoft simuliert. Wie
Peeker 8/85
Zeichenjagd
Bild 1 zu (10)
K vermindern
Bild 2 zu (11)
von Franz-Josef Hüskens in Peeker 2/84
beschrieben, geht das mit Verknüpfungen
von Wahrheitswerten.
Bei der ZEICHENJAGD geschieht dies in
den Teilen (9) bis (11). Dort nehmen die
logischen Ausdrücke (P = B) oder (P <>
B) die Werte 1 oder 0 an, die dann in
arithmetische Ausdrücke eingebaut wer-
den können. Bild 1 und 2 stellt diese
umfangreichen Teile noch einmal als Fluß-
diagramm dar.
Das Programm selbst besteht aus 13 An-
weisungen (das NEXT im Abschnitt (7)
mitgezählt), die in einer einzigen Zeile un-
tergebracht sind — und doch ist es ein
durchaus brauchbares Trainingsprogramm
für Anfänger und Könner (und mindestens
Taste =
Anzeige ?
T lassen
K lassen
T vermindern
so spannend wie die ersten Computer-
Pingpongspiele).
Beim Eingeben des Programms sollten
keine Leerzeichen getippt werden, weil
sonst die Eingabezeile zu lang werden
könnte.
Wer auf bestimmte Buchstaben oder an-
dere Zeiten mehr Wert legt als auf eine
Verkürzung, kann sich ohne großen Auf-
wand das individuelle MaBprogramm aus
mehreren Applesoft-Zeilen neu schreiben.
Meine böse BASIC-Fanatiker-Seele kann
sich die Frage an die Pascal-Enthusiasten
nicht verkneifen: „Geht so 'was auch in
Pascal?“ Aber ganz gleich, wo Sie stehen,
ich wünsche Ihnen viel Spaß mit der ZEI-
CHENJAGD, sei es beim Spielen, beim
Trainieren oder beim Ändern.
69
70
ZEICHENJAGD (Einzeiler)
Die nachgestellten Zahlen in Klammern sind nicht einzugeben.
1 HOME : (1)
Z = RND (1): (2)
POKE 1Ø4Ø,T + 48: (3)
POKE 1Ø44,K + 64: (4)
B = INT (Z * K) + 193: (5)
POKE 1244 + Z * 724,B: (6)
FOR I = 1 TO 350 * T — 250: NEXT : (7)
P = PEEK ( — 16384): (8)
PRINT CHR$ (7 * (P = B) + 32 * (P < > B));: (9)
T = T+ (B <> P) * (T < 9) — (B = P) = (T > 1): (10)
K =K+ (T = 2) * (K < 25) - (T = 9) * (K > 5): (11)
GOTO 1 (12)
Erklårung zu den einzelnen Abschnitten:
(1) Bildschirm löschen;
(2) Zufallszahl Z bilden;
(3) Spielstufe T (invers) in Bildschirmspeicher POKEn;
(4) Höchsten Buchstaben (blinkend) in Bildschirmspeicher
POKEn;
(5) neuen Buchstaben B aus Zufallszahl Z bestimmen;
(6) Buchstabe B in Bildschirm POKEn (diese POKEs können
auch die "Screenholes" treffen);
(7) der Spielstufe entsprechend warten;
(8) eingegebenen Buchstaben P aus Tastaturspeicher lesen;
(9) Tonsignal geben, wenn Buchstabe stimmt;
(1Ø) Spielstufe dem derzeitigen Wert und der Eingabe ent-
sprechend neu bestimmen (siehe Bild 1);
(11) höchsten Buchstabe dem derzeitigen Wert und der Spiel-
stufe entsprechend veråndern (siehe Bild 2); V
(12) wieder von vorn.
RAN FRE . NEU
H AM FRE BSAVE RAM.FRE.NEU, A$92B6,
u
92B6- AØ 19
92B8- B9 D2 ØØ
Das Programm RAM.FRE aus Peeker, Heft eg, SEAN ge
1/2 - 85, S. 40 enthålt einen schwerwie- 92C8- E3 85 73
genden Fehler im Algorithmus und läuft nn SP Sp å
nur in wenigen Fällen einwandfrei (z.B. bei 92EØ-
FRE.TEST). er
Das Problem liegt bei Strings, die im Spei- s
cher eine Seitengrenze überschreiten. Da 93ØØ-
jeweils nur eine Seite gepuffert wird, über- GER
nimmt das Programm den Teil des Strings, 9318-
der auf der nächsten Seite liegt, aus der 932p-
Page 3 (der Puffer umspannt den Bereich CR
$0200 bis $02FF). Die somit übertragene spi
Zeichenkette enthält dann im hinteren Teil 55485
nur noch Schrott (um genau zu sein: einen 935Ø-
Teil der Treiberroutine). s.
In der neuen Version RAM.FRE.NEU wer- 9368-
den die Strings nicht mehr im Eingabepuf- 9379-
s š ; ñ 9378-
fer gesichert, sondern in den zwei Seiten 938Ø-
von $9400 bis $95FF, wobei jedoch nur rå
die Strings, die im Bereich $9400 bis et
$94FF liegen, bearbeitet werden können. 93AØ-
93A8—
93BØ-
Diese Probleme treten bei der üblicher- 93B8-
weise benutzten LC-Version nicht auf. 95C0—
ú å 93C08-
Aus Platzgrunden kann hier nur der Hex- 93DØ-
dump abgedruckt werden, der Quelltext ist re
auf der Peeker-Sammeldiskette enthalten. ver
H. Grumser 93FØ-
93F8-
03
A9
85
ES
BØ
8D
FØ
00
07
3F
93
93
FF
69
45
AØ
E4
3E
2Ø
BØ
93
18
02
E4
FE
DØ
Bl
Bl
3E
Bl
3E
00
B1
E6
DØ
B1
F1
70
88
Bl
L$147
19
DB-MEISTER
Adreß- und Schemabriefprogramm
Der DB-Meister ist ein in Assembler
geschriebenes, ungewöhnlich schnel-
les, unkompliziertes und zugleich
, Narrensicheres" AdreB-, Datei- und
Schemabriefprogramm.
Der DB-Meister dient zum Anlegen,
Pflegen, Sortieren, Selektieren und
Ausdrucken von Dateien aller Art. Als
Apple-Benutzer wissen Sie, wie lang-
sam viele Programme dieser Art sind.
Nicht so der DB-Meister!
Drei Beispiele:
— Jeder beliebige von 560-999 Re-
cords wird nach Indexfeldern in 0,2
Sekunden gefunden.
Eine komplette Datendiskette mit
z.B. 600 Records läßt sich in 1
Minute nach 3 Feldern sortieren
und untersortieren. Dabei ist die
Zeit fur Diskettenzugriff bereits mit-
gerechnet.
Das Einlesen eines 50 Sektoren
langen Programm-Moduls dauert
nur 3,5 Sekunden.
Technische Daten des DB-Meisters
Recordlänge bis zu 230 Zeichen
560 bis 1000 Records pro Daten-
diskette
Maximal 25 Felder pro Record
4 Datentypen (String, Integer, Dezi-
malzahl, Real)
Suche nach 3 Indexfeldern — je 4
Zeichen lang — mit Wildcard-Funk-
tion
Sortieren und Filtern (kumuliertes
Selektieren) geschieht nach den
Index-Feldern
Ausdruck der Dateien als Etiketten,
Listen und Schemabriefe (mit Fel-
der- und Tastatureinschüben an be-
liebigen Stellen des Formbriefes)
normal kopierbare Programmdisket-
te, unterteilt in Hauptprogramme
und diverse Hilfsprogramme
einsatzfähig auf Apple lle oder Ilc.
(Achtung: Brief-Modul läuft nicht mit
Videx-Karte!)
— 256K RAM-Disks verwendbar
Gesamtpreis 290,- (2 Disketten +
gedrucktes Manual)
U. Stiehl
c/o Dr. A. Hüthig Verlag
Postfach 10 28 69 - 6900 Heidelberg
Peeker 8/85
Die Polaroid-Foto-Systeme
getestet von Thomas Bühner
und Prot. Dr. Klaus Hausmann
Zur —Foto-Dokumentation von
Computer-Grafiken griff man bis-
her zur vertrauten Kleinbildkamera.
Polaroid hat jetzt zwei Systeme
entwickelt, die bessere Ergebnisse
erwarten lassen.
Wer håufiger darauf angewiesen
ist, Diagramme, Schaltplåne oder
andere mit Computer-Hilfe ge-
schaffene Grafiken zu Papier zu
bringen, hatte bisher zwei generel-
le Möglichkeiten zur Dokumenta-
tion seiner Arbeit: einerseits die
Ausgabe des gespeicherten Bildes
mittels spezieller Hardcopy-Geråte
— üblicherweise Plotter oder Ma-
trixdrucker — auf Zeichenpapier
und andererseits die Fotografie
vom SchwarzweiB- oder Farb-Mo-
nitor.
Plotter und Matrixdrucker
Der Einsatz des Plotters ist oft
nicht möglich, da er nur von einer
beschrånkten Anzahl von Grafik-
programmen angesprochen wer-
den kann. Matrixdrucker liefern
zwar eine punktgenaue Wiederga-
be des Originals, verzerren aber
auf Grund unterschiedlicher hori-
Bild 1
Peeker 8/85
zontaler und vertikaler Dehnungs-
faktoren oft Kreise zu Ellipsen und
Quadrate zu Rechtecken. Da
mehrfarbige Matrixdrucker noch
wenig verbreitet sind, entfällt auch
die Möglichkeit zu bunten Repro-
duktionen.
Normale Kamera
Die Frage Schwarzweiß oder Bunt
spielt keine Rolle bei der Fotografie
vom Bildschirm. Für beide Fälle
gibt es geeignetes Material im
Fachhandel. Ein Foto ist außerdem
die originalgetreueste Form der
Bild-Dokumentation. Dennoch
wird dieser Weg selten eingeschla-
gen, da die Nachteile zu schwer
wiegen. Denn wie geht man vor?
Zunåchst wird die Kamera auf ein
Stativ montiert und vor dem Moni-
tor aufgebaut. Dabei muß man ge-
nau darauf achten, daß die Film-
ebene parallel zur Ebene des Bild-
schirms liegt, da sonst eine ver-
zerrte Aufnahme die Folge ist. Hel-
ligkeit und Kontrast oder Farbsåtti-
gung des Bildes müssen genau
stimmen. Dann wird der Raum ab-
gedunkelt, um störende Reflexe zu
A
fa
til»
TU
Íl.
p
Ft:
Dë e
ST
pr
Hat
Polaroid Palette:
Heidelberg
vermeiden. Um wenigstens ein
oder zwei verwertbare Negative
oder Dias zu erhalten, macht man
nun eine Serie von Aufnahmen mit
unterschiedlicher Zeit-/Blenden-
Kombination. Schließlich gibt man
den Film ins Labor und erhålt eini-
ge Tage später die fertigen Abzü-
ge. Doch selbst dann, wenn man
eine eigene Dunkelkammer be-
sitzt, wird man bestenfalls nach ein
paar Stunden die Ergebnisse vor-
liegen haben. Und diese Prozedur
muB fur jede Foto-Dokumentation
erneut durchlaufen werden.
Polaroid-CU-5-Makro-
Modul-System
Im Vergleich zur herkömmlichen
Bildschirm-Fotografie ist der Ein-
satz des CU-5-Makro-Modul-Sy-
stems kinderleicht. Aus den vielfäl-
tigen Kombinationsmöglichkeiten
der verfügbaren Module soll hier
nur die gezeigt werden, mit der
man Sofortbilder vom 12-Zoll-Mo-
nitor macht. Für diesen Zweck be-
steht die Kamera aus dem Kame-
rakörper, dem Linsensystem und
einem schwarzen Kunststofftrich-
ter. Der Film wird eingelegt, Be-
lichtungszeit und Blende nach den
Empfehlungen des Herstellers ein-
gestellt und der Trichter an den
Bildschirm gepreßt. Dann betätigt
man den Abzug - ähnlich wie bei
einer Pistole —, entnimmt die Film-/
Entwickler-Folie, wartet eine Minu-
te und zieht anschließend das ferti-
ge Foto ab.
Das Scharfstellen entfällt, da die
Schärfe-Ebene des Linsensy-
stems genau auf dem Bildschirm
liegt. Ein Abdunkeln des Raums
wird ebenso überflüssig, denn alle
Lichtquellen sind durch den Kunst-
stofftrichter abgeschirmt. Vor der
ersten Benutzung des Geräts ist
es allerdings ratsam, das Innere
mit einem schwarzen Mattlack zu
bestreichen, da das Kunststoffma-
terial selbst so stark reflektiert, daß
unter Umständen Spiegelungen
der einzigen Lichtquelle, die nicht
abschirmbar ist, auftreten können:
die des Monitors selbst.
Durch die gute Abbildungsqualität
fällt nun ein Manko ins Auge: Da
sich der Elektronenstrahl, der den
auf der Röhre aufgetragenen
Leuchtstoff zum Fluoreszieren
bringt, horizontal über das Bild be-
wegt, entstehen Rasterlinien, die
bei der Betrachtung des Fotos nun
noch stärker ins Auge fallen als
zuvor am Monitor selbst. Bei Farb-
fotos muß man leider auch feststel-
len, daß das empfohlene Filmma-
terial nicht für diesen Zweck geeig-
net ist. Die Farben wirken insge-
samt sehr blaß, und der Rot-Anteil
fehlt auf dem Foto fast ganz. Für
Schwarzweiß-Aufnahmen stellt
das Polaroid-CU-5-Makro-System
aber eindeutig ein leicht zu hand-
habendes Mittel dar, dessen Er-
gebnisse einfachen bis mittleren
Ansprüchen genügen.
Polaroid-Palette-System
Bei der Entwicklung des Palette-
Systems besann man sich darauf,
wie die Farberzeugung beim Fern-
sehgerät vor sich geht: Die drei
Grundfarben Rot, Grün und Blau
werden auf dem Bildschirm in un-
terschiedlichen Anteilen überein-
ander projiziert und vermischen
sich so für unser Auge. Hätten wir
ein fotografisches Gedächtnis, so
könnten auch zuerst alle Rot-An-
teile des Bildes gezeigt werden,
anschließend alle Partien, die Grün
enthalten, und zum Schluß das
Blau. Nun, für einen menschlichen
Beobachter wäre eine solche Bild-
Betrachtung ungeeignet, eine Fo-
tokamera jedoch könnte keinen
Unterschied wahrnehmen zwi-
schen einer gleichzeitigen und ei-
ner aufeinanderfolgenden Darbie-
tung der drei Grundfarben.
So besteht also das Palette-Sy-
stem aus einem beigen Metallge-
häuse, das ein Netzteil, einen klei-
nen Schwarzweiß-Bildschirm, ein
Rad mit Filtern in den drei Grund-
farben und einen Motor enthält, der
das Rad dreht. An der Rückseite
befinden sich ein RS-232-C-Ein-
gang, Monitor-Ein- und -Ausgang,
ein Anschluß für einen Foto-Win-
71
der und die bei Monitoren üblichen
Regler.
Nimmt man das Gerät zum ersten
Mal in Betrieb, so wird zunächst
über das mitgelieferte Kabel eine
Verbindung zum RS-232-C-Inter-
face, das in einem der Apple-Slots
steckt, hergestellt. Dieses Inter-
face ist nicht im Lieferumfang ent-
halten; viele Anwender werden
vermutlich die Super-Serial-Card
von Apple verwenden. Dann
schließt man den Monitor des Pa-
lette-Systems am Computer an.
Nun wird die Programm-Diskette
ins Laufwerk gelegt und gestartet.
Das Gerät muß nun noch justiert
werden, was in weniger als fünf
Minuten erledigt ist. Jetzt ist es
betriebsbereit. Beim nächsten Mal
entfallen alle diese Schritte, ledig-
lich eine Aufwärmzeit von 20 Minu-
ten muß eingehalten werden. Je
nach Wunsch befestigt man die
Sofortbild- oder die 35-mm-Kame-
ra an der Vorderseite.
Alle Aufnahmen zu diesem Artikel
entstanden, soweit nicht anders
vermerkt, mit der Sofortbild-Kame-
ra auf Polaroid Polacolor ER Land
Pack Film Type 669.
Besitzt man nur ein Diskettenlauf-
werk, muß man bei jeder neuen
Aufnahme einen Disk-Wechsel
vornehmen. Bei zwei Drives ist das
nicht nötig. Die Bilder müssen als
Binär-File auf Diskette vorliegen.
Zu Problemen kann es also kom-
men, wenn man etwa eine Szene
aus einem kopiergeschützten Pro-
gramm fotografieren will. Gewöhn-
lich unterbricht man dann zum
richtigen Zeitpunkt mit ,Ctrl-Offe-
ner-Apfel-Reset“ und nachfolgen-
dem „Ctri-Reset“, verschiebt das
Bild mit dem Monitor- „Move“ -Be-
fehl in einen sicheren Teil des
Speichers, bootet eine Diskette mit
normalem DOS und speichert
schließlich die Grafik ab. (Ctrl-Of-
fener-Apfel-Reset zerstört übri-
gens je 2 Bytes je Page, wodurch
das HGR-Bild geringfügig „ent-
stellt“ wird.)
Für den, der mit dem UCSD-Pas-
cal-System Bilder geschaffen hat,
wird bei Polaroid-Palette ein Pro-
gramm mitgeliefert, das diese
Dateien in das DOS-3.3-Format
umwandelt und damit für eine Fo-
tografie zugänglich macht. Doppelt
hochauflösende Grafik, bei der die
80-Zeichenkarte des Apple lle ein-
gesetzt wird, kann mit der bisher
vorhandenen Software nicht verar-
beitet werden.
Ist die Vorlage nun geladen, so
kann man sich vor der Aufnahme
ansehen, an welchen Stellen des
Bildes die einzelnen der acht Ap-
ple-Farben vertreten sind. Dem
geübten Palette-Benutzer bietet
diese Option die Möglichkeit, das
Aussehen des fertigen Fotos in et-
wa einzuschätzen und schon bei
der ersten Aufnahme die nötigen
Korrekturen vorzunehmen.
Vor der Belichtung des Films prüft
das Programm diese Farbvertei-
lung und dreht zunächst den roten
Filter vor das Objektiv der Kamera.
Nun wird der zunächst leere
Schirm an den Stellen gefüllt, die
die größte Rot-Intensität aufwei-
sen. Der Benutzer sieht auf sei-
nem Monitor dasselbe, nur natür-
lich nicht in Farbe. Einige Sekun-
den später füllen sich die Stellen,
Flaechennutz ung
im untersuchten Gebiet
Bild 2
72
ja
bunga tired
Hp ER
zem
KH
E
Ke
wo
EH
E
Kg
ES?
enen
EH
E
E
3
Flaechennutz ung
im untersuchten Gebiet
F A
Bild 3
die eine geringere Rot-Intensitåt
aufweisen. Dieser Prozeß setzt
sich fort, bis alle Teile, die einen
Rot-Anteil aufweisen, erschienen
sind. Der Schirm wird daraufhin
gelöscht, das Filterrad dreht sich
und der Vorgang findet von neuem
für die Farben Blau und Grün statt.
Je nach Filmsorte dauert ein kom-
pletter Belichtungszyklus ein bis
zwei Minuten.
Wenn im voraus klar ist, welche
Bilder aufgenommen werden sol-
len, besteht die Möglichkeit, all
dies vollautomatisch ablaufen zu
lassen, so daß man innerhalb von
einer Viertelstunde etwa zehn ferti-
ge Dias herstellen kann.
Die oben erwähnten Rasterstreifen
in der Aufnahme erscheinen bei
dem Palette-System nicht mehr.
Das wird dadurch erreicht, daß der
Elektronenstrahl des kleinen Moni-
tors bei jedem zweiten Durchgang
um eine halbe Strahlbreite vertikal
verschoben wird, so daß die hori-
zontalen Leerstreifen, die gewöhn-
lich zu erkennen sind, aufgefüllt
werden.
Sieht man sich bunte Apple-Grafi-
ken auf Schwarzweiß-Schirmen
an, so bemerkt man auch eine ver-
tikale Rasterung: Alle Farben außer
Schwarz und Weiß werden durch
senkrechte Streifen dargestellt.
Zur Erzielung unterschiedlicher Ef-
fekte kann dies bei Aufnahmen mit
dem Polaroid-Palette-System bei-
behalten werden.
Technische Tips
Hat man nun ein Foto vor sich lie-
gen, so stellt man fest, daß die
Bebaut 13 %
Verkehrsuege
Nutzflaeche
Gewaesser
Brachland
Naturschutz
Re
Bea
LP
KE
LE
|
E
MILE
1982
Probleme, die bei normal großer
Schrift auch auf Farbmonitoren
auftreten, nicht behoben sind: Die
vertikalen Schriftteile sind nicht
weiß, sondern grün und violett.
Dieser Effekt geht auf die Art der
internen Farbdarstellung des Apple
zurück und kann durch herkömmli-
che Methoden nicht behoben
werden.
Das Palette-System bietet dem
Benutzer jetzt aber die Möglich-
keit, jede der acht Farben der Ap-
ple-Grafik in eine der 72 gespei-
cherten umzuändern. Zunächst
wird festgestellt, wo eine Verbes-
serung nötig ist. In unserem Fall
sollten die Buchstaben lesbar sein.
Also gibt man dem Programm an,
daß Weiß, Grün und Violett auf
dem Foto in Gelb (C5) erscheinen
sollen. Um auch gleich eine andere
Farbkombination auszuprobieren,
ersetzt man beispielsweise Oran-
ge durch Hellgrün (B6), Blau durch
Rot (D6) und Schwarz durch Dun-
kelblau (F5). Buchstaben und Um-
randung erscheinen nun einheit-
lich. Nachteilig ist, daß jetzt auch
alle Flächen, die zuvor grün oder
violett waren, gelb sind. Bei der
Schaffung von Bildern muß man
also darauf achten, daß sich nur die
vier Farben Schwarz, Weiß, Oran-
ge und Blau später auf dem Foto
unterscheiden. Mit den neuen
Möglichkeiten kann man natürlich
ebenso einen effektvollen hellen
Hintergrund für Präsentationen
schaffen.
Im allgemeinen empfiehlt es sich
jedoch, am äußeren Rand sparsam
mit hellen Farben umzugehen.
Sonst kann es schnell geschehen,
daß die leichte kissenförmige Ver-
Peeker 8/85
NaCl Zugabe
Bild 4
zeichnung des Monitor-Bildes, die
sich bei der Aufnahme ergibt, ins
Auge fållt.
Um dem Benutzer die Arbeit weiter
zu erleichtern, liefert Polaroid be-
reits eine Vorschlagsliste fur den
Farbtausch mit. Die oberste Reihe
entspricht dem Apple-Standard,
wåhrend die Reihen 1 bis 8 Alter-
nativen darstellen. Es fållt auf, daB
Grün, Violett und Weiß immer
durch dieselbe Farbe ersetzt wer-
den. Das geschieht, um die be-
schriebenen Probleme mit der Ab-
bildung von Buchstaben und Zah-
len zu verhindern.
Die Benutzerführung « ist hier,
ebenso wie im Rest des Pro-
gramms, klar und unkompliziert.
Wer mit den 72 vorhandenen Far-
ben nicht zufrieden ist, kann selbst
kreativ tätig werden und beliebige
weitere Nuancen entwickeln.
Technische Daten
Produkt:
System
Einsatz: Makro-Fotografie
Lieferumfang: Modul-System.
Für Sofortbilder vom 12-Zoll-Mo-
nitor:
Kamerakörper 88-1
Linsensystem 127 mm 88-5
Monitorhaube 16 : 23,3 cm 88-49
Filmmaterial: Polaroid Video Image
Recording Land Pack Film Type
611 und weitere schwarzweiße Po-
laroid Land Pack Filme
Computer: beliebig
Voraussetzungen: Betriebsberei-
ter Schwarzweiß-Monitor
Preis inkl. Mwst.: in 0.a. Ausstat-
tung ca. DM 1740,-
Polaroid-CU-5-Makro-
Peeker 8/85
Produkt:
stem
Einsatz: Foto-Dokumentation von
Computer-Farbbildern für gehobe-
ne Ansprüche
Lieferumfang: Monitor/Rekorder,
Sofortbildkamera, Kleinbildkamera
mit Autowinder, Sofortdia-Entwick-
lungs-System, Anschlußkabel,
Handbuch (80 Seiten, englisch),
Programm-Diskette (kopierbar,
englisch)
Filmmaterial: verwendbar sind di-
verse Sofortbild-Farbfilme, han-
delsübliche Dia-Filme und Pola-
roid-Sofortdias
Computer: Apple-Il-Serie (jedoch
keine Double-Hires-Unterstüt-
zung) und verschiedene andere
PCs
Voraussetzungen: Computer, 1
Diskettenlaufwerk (besser 2), RS-
232-C-Interface
Preis inkl. Mwst.: ca. DM 5600,-
Bezugsquelle: Polaroid GmbH, Of-
fenbach
Polaroid-Palette-Sy-
Abbildungen
Bild 1: Motiv Heidelberg.
Bild 2: Kreisdiagramm Flächennut-
zung mit Original-Apple-Farbpalet-
e (hier nur schwarzweiß).
Bild 3: Kreisdiagramm Flächennut-
zung mit ausgetauschten Farben,
dunkler Hintergrund. Die Schrift ist
nun lesbar geworden (hier nur
schwarzweiß).
Bild 4: Technisches Balkendia-
gramm NaCl-Zugabe (hier nur
schwarzweiß).
ZUSATZ-KARTEN:
V-24-Schnittstelle ............ 199,- Z-80-Karte ................. 139,-
80-Zeichen-Karte m.Softswitch 236,- 16 K-Language-Karte ......... 138,-
Centronics-Karte von Epson für Graphik . . . . 210,- für Text . . . . 145,-
Centronics-Schnittstelle für 2 Drucker gleichzeitig ................... 129,-
DOEN SoftWal ~. a aaa 198,-
uper-Eprommer 239
belegt keinen Slot, incl. Software für 2708-27128 ............ ø”
i EN bl úa áð Vv Yasa heq s. RAA a auf Anfrage
FDC 4 für alle Laufwerke pp . 70,- Bausatz wie links ............ 159,-
Leerplatine wie oben incl. Prom u. Eprom .......................... 98,-
Druck Spooler mit 16,32 oder 64 KB ................... Preis auf Anfrage
EE -Controller epi contrown
1 x 35 bis 2 x 80 Tr.-Disk, keine Patch-Disk notwendig, Patch DOS 3.3, Diversi-
DOS 2-C, 4-C (DD MOVER), Pascal 1.1, Pascal 1.2, CPM 2.2, , ProDOS9
101;11;1.1.7: Sie pk die Laufwerke E mischen 98, =
=£ für 1 5⁄4" Slimline Laufwerk .............................. 39,-
Gehäuse für 2 54" Slimline Laufwerke mit Platz für ein Netzteil ......... 159,-
Gehäuse für 2 3%" Slimline Laufwerke mit Platz für ein Netzteil .......... 79,-
TT .............................................. 229,-
Floppy-Kobel 34pol. für 2 Laufwerke mit Shugart-Bus ................. 35,-
Preh Commander Keyboards
Wir bieten Ihnen die Preh-Qualität auch für Apple. AK 88 Spez. mit Gehäuse, An-
schlußkabel, Zehner-Tastenfeld, dt. Zeichensatz, Sondarlisten für
Ctrl-Codes und Rechenfunktionen ........................... 339,-
Preh Commander Keyboard, frei programmierbar
bis zu 10 Ebenen, pro Taste bis zu 250 Zeichen .............. nur 599,-
TEAC 34" ‚Laufwerk FD 35 F535,-
Speicherkapazität 1 MB, (formatiert 640 KB) jetzt für nur ........
Le m KÐ
TEAC FD 55 A 1 x 40 Track ..... 445,- TEAC FD 55 B 2 x 40 Trac Kis 515,-
TEAC FD 55 E 1 x 80 Track ..... 490,- TEACFD55F2x80Track ..... 560,-
GE EE EEE ETNE nur 799,-
Apple®-kompatibles Laufwerk incl. Gehäuse + Kabel ................ 599,-
320 KB Laufwerk für Ic ................. 948,-
148 KB Laufwerk für IIc.................. 698,-
EPSON DRUCKER
EPSON FX 80 ............... 1670,- EPSONFX100 .............. 2159,-
EPSON RX 80 .............. 1079,- EPSONRX80FT ............ 1295,-
Die Microfloppy mit Zukunft:
Speicherkapazität: 2 x 1 MByte formatiert: 2 x
640 kByte. Anschlußfertig mit PROM-residenter
Patchsoftware für CP/M 2.2, Apple DOS 3.3, Di- nen
versiDOS 2-C, 4-C (DD MOVER), Apple Pascal Ó sss,
1.1, Pascal 1.2, Pro-DOS 1.0.1,
1.1,1.1.1 zum Preis von ........ 1640,- 1 Ç —_
Low Power Version ................. 1740,- E SH
10 MB Winchester ..sotware
fur DOS 3.3, CP/M 2.20, Pascal, Pro-DOS, incl. Controler 4490
und Gehåuse, bootet alle Systeme von der Winchester ..... CH
Sonderangebot
Disketten Döb&Böd, 40 Track, SS/DD 10er Pack ......... 49 =
Disketten Döb&Böd, 2x80 Track, SS/DD, 10er Pack .................. 9,-
Gesamt-Preisliste anfordern!
Preise inclusive gesetzlicher Mehrwertsteuer.
LEDING electronics
DFÜ 02373/66877
Tel. 02373/63159
Holtewiese 2
5750 Menden 1
73
Das Bildverarbeitungssystem MAGIC
Mit dem MAGIC-Bildverarbei-
tungssystem für den Apple Macin-
tosh von Heyden Datasystems
können nun Bilder oder Objekte
mit einer normalen Video-Kamera
aufgenommen und danach auf
dem Bildschirm des Macintosh
wiedergegeben werden.
Das System, das aus Video-Kame-
ra, Interface, Software und einer
ausführlichen Bedienungsanlei-
tung besteht, ermöglicht die Wei-
terverarbeitung der Bilder mit dem
MacPaint-Programm, woraus sich
ungeahnte Möglichkeiten zur grafi-
schen Aufbereitung ergeben.
Selbstverständlich können die Bil-
der auch in andere Anwender-
Software wie MacWrite übernom-
men werden.
Die Handhabung ist auf Grund der
Menü-Steuerung sehr einfach, wo-
durch auch der Computer-Laie kei-
ne Schwierigkeiten beim Ablauf
der Bilderfassung hat.
Die Möglichkeit der Bild-Digitali-
sierung läßt sich vielfach aus-
nutzen:
Im wissenschaftliichen Bereich
können Strukturen erfaßt und aus-
gewertet werden; im Bereich Gra-
fik, Werbung und Design bietet
sich die Aufnahme von Teilbildern
zur gestalterischen Überarbeitung
an.
TRICARD —
Multifunktionskarte
für Apple lle
Für alle Apple-Besitzer, die keine freien Steckplätze
mehr haben, gibt es jetzt eine Multifunktionskarte,
die von der Firma FAST Electronic entwickelt wurde.
Diese Karte ist vollständig kompatibel zur Super-
Serial-Card der Firma Apple.
Darüber hinaus bietet sie eine akku-gepufferte Uhr,
die mit entsprechender Treibersoftware für ProDOS
und Apple Pascal betrieben werden kann.
Als dritte Option ist der Betrieb eines Druckers über
den Parallel-Port möglich. Die entsprechende Soft-
ware und das zugehörige Centronic-Verbindungs-
kabel können bezogen werden.
Ein detaillierter Bericht zu dieser Karte wird dem-
nächst erscheinen.
74
Amay ,
HR Í Preisliste
y f BEAJ |
Ga I kostenlos!
| 1
| ÆA
Katalog DM 2,—
Unser Angebot im August
Chinon Laufwerk
(Test peeker 5/85)
DM 398,-
Profimax Ill
(= Lazar Ilze, Test peeker 6/85)
DM 1248,-
D.O.S. Computersysteme
Am Kühnbach 42, 7170 Schwäbisch Hall 11
Telefon (0791) 51736
Siemens entdeckt
neue Primzahl
Nachdem wir wiederholt im Peeker
gezeigt haben, wie der „kleine Ap-
ple-Rechner“ mit Primzahlen um-
gehen kann (s. Primzahlen-Wett-
bewerb, Heft 1/84 und folgende
Ausgaben), zeigen wir einmal, wie
der „große Siemens-Rechner"
hier vorgeht und zitieren eine ein-
gegangene Pressenotiz:
Ein Leckerbissen für Mathematiker
kommt aus Hamburg: Im Rechen-
zentrum der dortigen Universität
haben Wissenschaftler eine neue
Primzahl ermittelt. Mit Hilfe eines
Großcomputers vom Typ Siemens
7.882 errechneten sie die Zahl 5 *
2 1 23473 + 1, die ausgeschrie-
ben insgesamt 7067 Stellen um-
faßt.
Zur Erinnerung: Primzahlen sind
alle von 1 verschiedenen natürli-
chen Zahlen, die nur durch 1 und
durch sich selbst ohne Rest teilbar
sind. Das beginnt mit der 2 — übri-
gens die einzige gerade Primzahl —
und geht weiter mit der 3, 5, 7, 11,
13, 17, usw.
Die neue Primzahl ist aber nicht
nur wegen ihrer Größe bemer-
kenswert. Ihre Besonderheit liegt
vielmehr darin, daß sie für die gi-
gantische Fermat-Zahl 2 TZ"
223471 + 1 als Teiler fungiert. Un-
ter allen Fermat-Zahlen ist dies die
weitaus größte, deren Zerlegbar-
keit bislang nachgewiesen werden
konnte. Fermat-Zahlen sind alle
Zahlen, die sich in der Form 2 1 2
f n + 1 darstellen lassen.
Der in Hamburg entdeckte Teiler
für die genannte Fermat-Zahl ist
die viertgrößte von den derzeit be-
kannten Primzahlen. Die drei grö-
Beren, die Primzahl 2 1 44497 - 1,
2 1 86243 -1 und 2 7 132049 - 1
sind in den USA ermittelt worden.
Primzahlen kann man z.B. zum
Verschlüsseln von Nachrichten
verwenden. Dabei werden zwei
sehr große Primzahlen miteinander
multipliziert, was relativ einfach ist.
Zum Entschlüsseln aber sind aus
dem erhaltenen Produkt wieder die
ursprünglichen Primzahlen zu er-
mitteln — und dies ist für Uneinge-
weihte extrem rechenaufwendig.
Peeker 8/85
Sich regelmäßig informieren
«Peeker» abonnieren!
Peeker Freaks nutzen jetzt die Vorteile eines Abos:
® Regelmäßig erhalten Sie alle
12 Peeker Ausgaben des Jahres
und verpassen somit keinen Be-
richt, kein Programm und keinen
Tip
@ Nutzen Sie den bequemen Ein-
kaufsweg, denn Peeker kommt
mit der Post zu Ihnen ins Haus
@ Der Preis des Abonnements
ist Ihr Vorteil:
Sie zahlen DM 72,- (inkl. Porto)
jährlich statt DM 6,50 Einzelpreis.
Das ist ein Heft gratis im Jahr
WW ll
mm
Hüthig
PUBLIKATION
Copy-Killer jetzt in deutsch
Das bereits im Peeker 1/84 be-
schriebene Kopierschutzpro-
gramm Copy-Killer ist nun in deut-
@ @ @
7470 ALBSTADT 2 (Truchtelfingen) -Theophil-Wurm-Straße 7 - Tel. O74 32/133 16 - Telex 763317 mat d
scher Version mit verbesserter Be-
dienerführung erhàltlich. Program-
me, die mit dem Copy-Killer ko-
piert werden, lassen sich mit den
bislang bekannten Bit-Kopierpro-
grammen wie z.B. Nibbles Away,
Locksmith etc. nicht mehr ko-
pieren.
Beim Kopiervorgang ist wie folgt
vorzugehen: Zunåchst wird eine
Copy-Killer Slave-Diskette ange-
legt. Auf diese Diskette wird die
Original-DOS-Diskette kopiert.
Beim Kopieren auf die Slave-Dis-
kette kann eine Meldung eingege-
ben werden, die beim Booten an-
gezeigt wird. So kann jede Disket-
te individuell mit einer Seriennum-
mer versehen werden. Der Preis
betrågt DM 228,-. Copy-Killer fur
ProDOS ist in Vorbereitung.
Microfloppy mit2x 1 MByte
Die Firma Sommer GmbH bietet
ein Microfloppy-Terminal MFT-A
an, das die bisher üblichen 5,25-
Zoll-Laufwerke ersetzt oder ge-
meinsam mit bereits vorhandenen
Floppy-Disks betrieben werden
kann. Die Einbindung in das vor-
handene Betriebssystem (DOS
3.3, CP/M 2.2 oder Apple Pascal
1.1) erfolgt automatisch durch den
Floppy-Disk-Controller mit PROM-
residenter Patch-Software (Erphi-
Controller); eine Patch-Diskette ist
nicht erforderlich. Der Patch-Vor-
gang — das Erweitern des Betriebs-
systems und Einbinden der 80-
Spur-Disketten — erfordert keiner-
lei Eingaben durch den Benutzer.
Das Doppellaufwerk in einem Me-
tallgehåuse, das mit Kabel und
Controller geliefert wird, hat eine
unformatierte Speicherkapazität
von 2 MBytes oder 1,2 MBytes
formatiert. Der Preis betrågt DM
1995,- (inkl. MWSt.).
ProDOS-Debugger BUGBYTER
getestet von Dr.
Kehrel
Jurgen B.
Sie haben stunden- oder gar tage-
lang an einem Assemblerpro-
gramm geschrieben, starten es
voller Hoffnung zum ersten Mal,
und zu Ihrem Entsetzen verab-
schiedet sich Ihr ausgeklügelter
Code in das Niemandsland. Jetzt
hilft nur noch eins: Mit Ruhe und
einem guten Debugger (= „Ent-
wanzer“) Schritt für Schritt den un-
heimlichen Spuren zu folgen.
79,-
79,-
Z-80-Karte
Disk-Interface
Centronics-Interf. m. Kabel 79,-
16-K-RAM-Karte
79,-
109,-
139,-
299,-
RS-232-Karte
Eprommer (4, 8, 16 K)
128-K-RAM-Karte
256-KB-RAM-Karte 598,-
Wild-Karte 99,-
(knackt geschitzte Programme)
Håndleranfragen erwünscht!
76
Assemblerprogramme erzeugen
einen sehr schnellen und kompak-
ten Code, und oft ist es erst da-
durch möglich, bestimmte Dinge
auszuführen. Ein gewaltiger Nach-
teil ist aber, daß Sie keinerlei Feh-
lermeldungen erhalten, wenn et-
was „schief geht“. Allenfalls haben
Sie das Glück, die Stimme des Ap-
ple zu vernehmen, verbunden mit
der Anzeige einer Adresse und der
Registerinhalte. Dann wissen Sie
zumindest, wo Sie gelandet, aber
immer noch nicht, wie Sie dorthin
gekommen sind.
80-Zeichen-Karte
mit Sorftswitch, neue
Vers. m. gest. scharf. Bild
Speech-Karte
Clock-Karte
Super-Serial-Karte
Komp 2E
Apple 2E kompatible, Rechner
64 K im 2E-Design, ohne Firmware
80Z + 64K-Karte 99,-
für 2E kompatible
Appie-Info 1,- DM (Porto)
149,-
Hier hilft ein Programm weiter, das
seinerseits Ihr Programm in Zeitlu-
pe ausführt und Sie über alle Vor-
gänge informiert. Solche „Debug-
ger“ gibt es schon lange für den
Apple, z.B. „Symbol Symon“,
„The Bug“ und „Munch a Bug".
Jetzt können Sie aber mit BUGBY-
TER einen Vertreter dieser Art be-
kommen, der alle seine Vorgänger
in den Schatten stellt.
BUGBYTER von Computer Ad-
vanced Ideas Inc. in Berkeley (Ka-
lifornien) ist auf jeder „ProDOS
Assembler Tools"-Diskette von
Apple enthalten, und selbst wenn
Sie den ProDOS Apple-Assembler
nie benutzen werden, macht schon
Apple II
+ Kompatible
Komp 48
48 K. 6502 ohne Firmware
Komp 64
64 K, 6502, 2-80, 15er-Block
ohne Firmware
der BUGBYTER den Kauf lohnend.
(Fruher kostete der BUGBYTER al-
lein $40.00)
BUGBYTER ist ein Maschinenpro-
gramm, das sich normalerweise ab
$2000 im Speicher befindet. Was
aber, wenn Ihr Code gerade hier
liegt? Nun, Sie laden BUGBYTER
einfach an irgendeine andere Stel-
le, an der knapp 7K zusammen-
hångend frei sind, denn BUGBY-
TER läuft überall, auch in der
Language Card. Zusåtzlich benutzt
BUGBYTER den Stack im Bereich
von $0100 bis $011F, was aber
selten zu Konflikten führt.
In 6 Fenstern, deren Größe z.T.
von Ihnen variiert werden kann,
880,-
Komp 64 S
wie Komp 64, jedoch mit abgesetzter
Tastatur mit 188 Funktionen.
Motherboard 48 K
389,-
8 Slots, alle IC’s gesockelt,
ohne Firmware, fertig geprüft
— Motherboard 64 K
wie oben, mit 6502 und
Z 80, 64 K
E SS TE £ E SS
Alle Preise inklusi
ve Mehrwertsteuer. 6 Monate
Garantie Versand erfolgt per NN oder Vorkasse.
399,-
Hard-, Software
Im Viertstr. 3-13
6233 Kelkheim
A (06198) 7523
Peeker 8/85
sehen Sie die Register, einen
Stackausschnitt, den gerade aus-
geführten Code in disassemblier-
ter Form, von Ihnen ausgewàhlte
Speicherstellen beliebiger Lage,
einen Zykluszàhler und von Ihnen
gewählte Stoppstellen (Break-
points). Die unterste Zeile dient als
Kommandozeile. Sie können je-
derzeit Code disassemblieren,
neuen Code assemblieren (eine
Art Miniassembler ist eingebaut),
die Register auf jeden Wert setzen
oder sich Speicherauszüge in HEX
oder ASCII ausgeben lassen. Sie
können ferner ProDOS-Befehle
(z.B. BLOAD) ausführen, in den
Monitor oder nach Applesoft
springen.
Um Ihr Programm zu verfolgen,
lassen Sie es entweder in Einzel-
schritten (STEP) oder kontinu-
ierlich (TRACE) ablaufen, wobei
die Geschwindigkeit über die Ta-
statur oder einen Joystick geregelt
werden kann. Nach jedem Schritt
werden alle Anzeigen aktualisiert.
Unterroutinen, von denen Sie
schon wissen, daß sie funktionie-
ren, können Sie überspringen oder
im Schnellgang durcheilen. Sie
können sogar ganze Bereiche defi-
nieren, in denen die volle Ge-
schwindigkeit des Apple benutzt
wird, wenn es sich um zeitkritische
Routinen handelt (z.B. Disk-Ope-
rationen).
Wollen Sie sehen, wie Ihr Pro-
gramm die 1. oder 2. Text-, Lores-
oder Hires-Seite benutzt, können
sie die BUGBYTER-Anzeige zeit-
weise abschalten. Benutzt Ihr Pro-
gramm die Tastatur, können Sie
BUGBYTER mit dem Joystick
stoppen und starten und alle Ta-
sten bis auf eine von Ihnen defi-
nierte und von BUGBYTER benö-
tigte freigeben. Da bleibt eigentlich
kein Wunsch mehr offen.
In Ihrem Programm können Sie
Stoppstellen vorwählen. Transpa-
rente Stoppstellen ändern Ihren
Code nicht, sondern halten die
Ausführung nur an, wenn die ge-
wählte Adresse erreicht ist. Sie
können vorgeben, ob dies bereits
beim ersten Erreichen der Stopp-
stelle geschehen soll oder erst bei
einem wiederholten Male, wobei
BUGBYTER dann die Zahl der tat-
sächlichen Durchläufe anzeigt. Auf
dese Weise können Sie z.B.
Schleifen austesten. Echte Stopp-
stellen modifizieren den Code und
sind nur notwendig, wenn Sie Ihr
Programm mit voller Geschwindig-
TESTDERICHTE ae
keit testen wollen. Sie brauchen
sich um die überschriebenen
Bytes nicht zu kümmern, denn
BUGBYTER rekonstruiert sie auf
Befehl.
Ich konnte Ihnen hier nur einen
knappen Überblick über die Funk-
tionen geben, deren Kombination
Ihnen endlose Möglichkeiten eröff-
nen. Im Manual ist auf ca. 40 Sei-
ten alles genau beschrieben. Le-
diglich zwei Fehler haben sich dort
eingeschlichen: Auf Seite 167 muß
die Adresse $2006 und nicht
$7C06 lauten und auf Seite 169
$2005 anstatt $2006. Ob Sie nun
ein Assembleranfänger sind und
dem Apple ab und zu auf die Bytes
schauen wollen oder ob Sie pro-
fessionell große Programme nach
Fehlern durchsuchen, mit dem
BUGBYTER haben Sie dazu ein
wundervolles Werkzeug.
Ausgabe und
Eingabe mi:
TYPETERM®
im Slot Ihres
APPLE Ilie
Das bedeutet: Computer-
textverarbeitung von der
Schreibmaschinentastatur!
Steckerfertig ohne Umbau.
TYPETERM- DM 479,-
Interface incl. MWSt.
für alle BROTHER-Typenrad-
schreibmaschinen
Paketpreis: DM 1348,-
Schreibmaschine
CE-51 mit TYPETERM
®
QUALITÄT AUS ERSTER HAND.
CE-61 mit TYPETERM .......... DM 1787,-
EM-80 mit TYPETERM .......... DM 2087,-
EM-100 mit TYPETERM ........ DM 3122,-
TYPETERM-Kit für CE-50 ..... DM 468,-
CE-25 mit TYPETERM ............. anfragen
TYPETERM - ein starkes Interface für
starke Maschinen! Alle Cursor- und Ctl-
Befehle. 2k ROM auf der Karte f. DOS,
PRODOS, CP/M, PASCAL. Alle Features:
Hoch-/Tiefstellen, autom. Unterstreichen,
var. Zeichen- u. Zeilenabst., autom.
Papierzuführung usw. Ausführl.
Handbuch vorab: 10,— DM auf Konto
14770-306 PGiroA Han (Anrechnung).
TYPETERM ein Produkt von
@
interkom Kock & Mreches GmbH
— EE Postf., 3004 Isernhagen 4
electronic Telefon 05139-87393
Peeker 8/85
Beagle Graphics
getestet von Rolf W. Becker
Beagle Graphics ist ein hervorra-
gendes Zeichenhilfsmittel in der
doppelt hochauflösenden Grafik
(560 * 192 Punkte), wobei 16
Grundfarben und 240 Mischfarben
(in schwarzweiß entspricht dies
verschiedenen Schraffuren) zur
Verfügung stehen. Die Doppelt-
Lores-Grafik (80 * 40 und 80 x 48
Punkte) wird ebenfalls unterstützt.
Gezeichnet werden kann mit der
Apple-Mouse, dem Apple Gra-
phics Tablet, dem Joystick bzw.
Paddle oder dem Koalapad und
schließlich auch mit der Tastatur.
Die Diskette enthält sowohl eine
DOS-3.3- als auch eine ProDOS-
Version.
Nach dem Booten wählt man mit
, <Ctrl-D> RUN DOUBLE.PLOT"
das Modul zum Zeichnen und be-
stimmt danach eine der obenge-
nannten Zeichenhilfen. Das dar-
auffolgende Haupt-Menü bietet fol-
gende Optionen:
— Box zeichnet Rechtecke,
— Circle zeichnet Kreise und El-
lipsen,
— Draw stellt einen Bleistift zum
Freihandzeichnen zur Verfügung,
— Line zieht eine Linie mit dem
Bleistift,
— Edit bearbeitet einen festzule-
genden Teil,
— Fill füllt umschlossene Flächen
mit Mustern oder Farben,
— Paint ermöglicht das Zeichnen
mit verschiedenen Pinselstärken,
— Text schreibt in 21 verschiede-
nen Schriftarten,
— Mode wählt zwischen den Dar-
stellungsgrößen,
— Set Color legt die Vorder- und
Hintergrundfarbe fest,
— X macht den Bildschirm in wähl-
barer Farbe frei,
— Quit verläßt das Programm.
Mit der Leertaste kann ein kleiner
Teil des Bildes in Einzelpunkten
bearbeitet werden.
Mit dem Edit-Befehl wird zunächst
ein Gebiet der Zeichnung festge-
legt, das dann bearbeitet werden
kann. Dabei besteht die Möglich-
keit, Gebiete zu löschen, zu kopie-
ren oder zu verschieben. Weiterhin
können die festgelegten Teile in-
vertiert und in horizontaler und ver-
tikaler Richtung verdreht werden.
Mit der ESC-Taste kehrt man in
das Haupt-Menü zurück.
Mit <Ctrl-F> wird der Fill-Befehl
angesprochen, der alle Möglich-
keiten von Farben und Strukturen
eröffnet. Damit ist Beagle Gra-
phics, soweit ich informiert bin, das
Programm, mit dem die größte Pa-
lette auf dem Apple erreicht wer-
den kann. Vor dem Füllen emp-
fiehlt es sich, das Bild auf Diskette
zu speichern, um den Vorgang zu
wiederholen, falls etwas schief-
geht.
Der Paint-Befehl ermöglicht im
Gegensatz zu MousePaint, das nur
schwarze Pinselstriche erlaubt,
auch andere Muster. Es stehen 16
Pinselarten zur Verfügung, wobei
mit einem Pinselstrich in der Bild-
schirmfarbe auch ein Radiergummi
benutzt werden kann.
Mit dem Text-Befehl kann in einer
der 21 verschiedenen Schriftarten
(auch Russisch und Griechisch),
die auf Diskette mitgeliefert wer-
den, geschrieben werden. Darüber
hinaus ermöglicht das Font-Editor-
Programm die Erstellung eigener
Zeichensätze.
Mit <Ctrl-D> wählt man Disket-
tenbefehle. Doppelt-Hires-Bilder
werden automatisch in zwei Files
gespeichert; der zweite mit dem
Zusatz ,.AUX". Zusätzlich befin-
det sich eine „SLIDE.SHOW“ auf
Diskette, mit der man seine Dop-
pelt-Hires-Bilder wie in einer Dia-
Show auf dem Bildschirm ablaufen
lassen kann.
Beagle Graphics beinhaltet 33
neue Applesoft-Befehle, die alle
sehr gut und ohne Probleme in
eigene Programme einfügbar sind
und auch alle ausgezeichnet funk-
tionieren. Außerdem gibt es einige
interessante und nützliche Utilities
wie z.B. die Umwandlung von ei-
genen Hires- in Doppelt-Hires-Bil-
der (auch für Lores). Besonders
nützlich ist „DOUBLE.
77
SCRUNCH". Damit werden die
beiden Bild-Files auf Diskette zu
einer kleineren Datei zusammen-
gefaBt. Man kann so mehr Bilder
für die „SLIDE.SHOW“ auf einer
Diskette speichern.
Applesoft-Grafikprogramme wer-
den mit der ,HGR.TO.DHGR"-
bzw. ,GR.TO.DGR"-Utilitie auto-
matisch umgewandelt, haben dann
also den neuen Befehlssatz.
Ich habe das Programm mit der
Apple-Mouse, dem Joystick und
der Tastatur getestet. Mit der Ta-
statur ist das Zeichnen mühselig,
führt aber zu guten Ergebnissen.
Mit dem Joystick ist die Handha-
bung sehr einfach, doch meiner
Ansicht nach auch sehr ungenau,
vor allem, wenn man exakt positio-
nieren will. Am besten konnte ich
mit der Apple-Mouse zeichnen.
Zwar gibt es hier nicht die Möglich-
keit, wie bei MousePaint alle Verar-
beitungsmöglichkeiten über Fen-
ster anzuklicken — die Befehle wer-
den über Einzeltasten wie „E“ für
Edit eingegeben -, doch die Um-
stellung fällt nicht schwer. Die Re-
sultate sind hervorragend. Jeder
Punkt der Zeichnung ist genau er-
reichbar; kleinste Details können
exakt eingezeichnet werden.
Leider war die entsprechende Trei-
ber-Software für die Doppelt-Hires
noch nicht lieferbar (es wird „Triple
Dump“ von Beagle Bros Inc ange-
boten). Deshalb konnte ich noch
keine Bilder drucken.
Hardware-Voraussetzungen: Ap-
ple Ilc oder Ile mit erweiterter 80-
Zeichen-Karte.
Erhältlich ist dieses Programm für
ca. DM 240,- bei einschlägigen Im-
porteuren.
Finanzbuchhaltung
für CPyM-80-Systeme, z.B. Apple, Proteus, TRS-80;
für Commodore CBM 8032/4032 mit Diskettenlaufwerk.
Anlagenbuchhaltung
(unter anderem für Abschreibungsberechnung)
für CP/M-80-Systeme, z. D Apple, Proteus, TRS-80.
Die CP/M-Programme sind auch unter MP/M lauffähig.
Bitte geben Sie bei Anfragen Ihren
Computertyp und die Ausbaustufe an.
Programmierbüro Kurt Kastner, Nikolausstr. 3
7500 Karlsruhe - Rüppurr
Telefon 07 21 / 88 42 90
Inserentenverzeichnis peeker 8/85
aaa electronic gmbh, Freiburg .
ccp-datentechnik, Hamburg
U. Dobbertin, Brühl
Seite
25
59
35
D.O.S. Computersysteme, Schwäbisch Hall v å ü ë.a M
HIB, Nürnberg
IBS Computertechnik, Bielefeld
Interkom electronic, Isernhagen
Intus, Waldshut-Tiengen .
Jeschke, Kelkheim
Kurt Kastner, Karlsruhe- -Röppurr
E AN Meyer, Frohnhausen .
78
U4
77
66
76
78
23
Micromint Computer GmbH, Erkrath . . . . . . . . 59
U. Mohwinkel Electronic, Leverkusen . . . . . . . . 35
Pandabooks, Berlin
Pandasoft, Berlin
Summagraphics, München .
Tombstone-Micro, Berlin
Ueding electronics, Menden
78
21
11
47
35
73
AKUSTIK-KOPPLER - Dataphon s21d
300 Baud Modem , nach CCITT V.21 Standard,
m. FTZ-Nr. 18.13.1917.00, Gebühren- und
anmeldefrei, Y24/RS-232 Standard-Schnittst.
T = PLETT - T
geeignet fir Apple //+ und Apple / /e:
I Dataphon s2 1d,
1 Anschlußkabel: V.24 zum Apple II-Game-1/O,
I Terminalprogramm: "HIB Modem- Transfer"
für Apple //+ und Apple //e anschluBf. im Gehåuse
w.o. jedoch fir Apple //c
TOSHIBA Spitzenlaufwerke zum Superpreis!
ND 06-D, 2 x 80 Track, 640 K-Byte formatiert
DISK-DOPPEL-STATION (APPLE //+ APPLE //
2 x ND 06-D im Geh. + Auto-Patchcontr., 1,2 MB
AUTO-PATCH-CONTROLLER
IC-Test-Karte ( Testet ca. 500 verschiedene IC's)
ROTHER-Matri er, die Super- !
M- 1009 (Matrixdrucker , RS-232 + Centronics)
M- 1009 anschluBfertig an:
Apple //c (mit Drucker-Kabel)
Apple //e (mit Graphik- Interface und Kabel)
nur DM
nur DM
DM
DM
DM
DM
DM
DM
DM
DM
DM
Alle Preise inclusive der gesetzlichen Mehrwertsteuer.
Berechnung der Versandkosten erfolgt nach Entfernung und Gewicht.
Fordern Sie noch heute unsere Gratispreisliste anfwiederverkäufer bitte nur
schriftlich anfragen (Kopie der Gewerbeanmeldung beilegen!).
rå HIB Computerladen
298,00
398,00
498,00
569,00
549,00
1698,00
298,00
398,00
698,00
798,00
898,00
ÄuB. Bayreuther Str. 72 - Telefon: 0911 / 515 939
Postfach 21 01 25
8500 Nürnberg 21
- Telex: 17 - 911 8253
- Teletex: 2526 - 911 82 53
Einem Teil dieser Ausgabe liegt ein Prospekt der Firma Interdata
GmbH, Singen bei.
Wir bitten unsere Leser um Beachtung.
Vergriffene Peeker-Hefte
Abonnenten können vergriffene
Peeker-Hefte als Heft-Kopien er-
werben. Inlandspreis DM 10,- inkl.
Versandkosten. Auslandspreis DM
12,- inkl. Versandkosten (Luftpost-
zusendung extra).
Z. Zt. sind vergriffen
und Heft 1-2/1985
Heft 1/1984
Peeker 8/85
“TI
PASCAL
Betriebssystem
ARLE N
PASCAL
Sprache
KE
KE
GI
Apple II Betriebssystem,
272 Seiten, DM 49 —
Apple II Sprache,
216 Seiten, DM 39,-
Pascal 1.2 Addendum, 112 Seiten,
DM 36,-
APPLE II ASA
Betriebssystem und
Sprache
Erstes deutsches Referenzwerk såmtlicher Befehle
und Systemroutinen von Apple II Pascal — mit Adden-
dum einschließlich Version Pascal 1.2!
Gültig für Apple II, II Plus, Ile einschließlich der
128K/80 Zeichen-Konfiguration.
Betriebssystem kommentiert ausführlich und in
Deutsch Funktion und Benutzung der fast 60 System-
routinen des Apple II Pascal Betriebssystems.
Sprache ist das vollständige, deutsche Referenzwerk
der „Apple Pascal“-Programmiersprache mit u.a. Infor-
mationen über professionelle Pascal-Programmierung,
Turtlegraphics, Programmbibliothek etc.
In Vorbereitung: Addendum Pascal 1.2, ein
Zusatz zum Buch „Betriebssystem“ für 1.2-Benutzer in
Deutsch.
„Nach Unterlagen von Apple Deutschland hergestellt“
te-wi Verlag GmbH
EN
Theo-Prosel-Weg 1 IPLI
8000 München 40
Weiterführende Literatur...
Das N,
£
APPLE II - Handbuch
(L. Poole)
LOGO -
Jeder kann programmieren
(Daniel Watt)
tm 4298
ew Unentbehrlich für alle, die die Programmier-
Ø sprache PASCAL lernen wollen und
um Zugang zu einem Apple-Computer haben.
| Erst mit Hilfe dieses Leitfadens werden Sie
“2 Ihren Apple II erfolgreich einsetzen, denn
31 Text und Bildmaterial gehen weit über das
déi hinaus, was herstellerseitig an Literatur
angeboten wird.
Neu überarbeitet und jetzt um die spezifi-
schen Eigenheiten der Modelle lle und IIc
Ð erweitert. 500 Seiten, Softcover, DM 66. -
APPLE II PASCAL -
Eine praktische Anleitung
(A. Luehrmann, H. Peckham)
544 Seiten, Softcover, DM 59,-
Computer für Kinder
(Sally Greenwood Larson) A APPLE
Ein Buch für Kinder. ihre Lehrer MASCHINEN
und Eltern. SPRACHE
„Computer für Kinder“ richtet SP DIET
sich an Kinder im Alter von 8 bis
13 Jahren. für deren Interesse an
Computern dieses Buch bewußt
geschrieben wurde.
Unterhaltsam und leicht verständlich.
A4 quer. Fadenheftung. DM 29.80
Buch des Jahres in den USA. Für die
Computer APPLE II, C-64, IBM PC, ATARI
bis 520 ST, TI-99 und CPC 464/664.
Hochwertiges Textbuch für Logo-Kurse für
zu Hause und im Lehrbereich.
ES 384 Seiten, A4, DM 59,-
APPLE II - Bewegte 3D-Graphik
(Phil Cohen)
Selbstentworfene Graphiken und Dia-
gramme - animiert oder als Standbilder —
eben oder räumlich: alle erforderlichen
BASIC-Programme mit Erklärung finden
Sie in diesem Buch.
200 Seiten, Softcover, DM 49,-
Apple Maschinensprache
Für BASIC-Programmierer der einfachste
Zugang zur Muttersprache des Apple. Wesent-
lich schnellere Maschinenprogramme, direkte
Manipulation des Mikroprozessors 6502 im
Apple — als Brücke dorthin benötigt dieses
Buch nur die drei BASIC-Befehle, POKE,
CALL, PEEK. D. Inman/K. Inman. DM 49, —
NEU: REPARATURANLEITUNG
COMPUTER: APPLE IL I PLUS
DM 29,80
Noch im Programm:
6502 —- Programmieren in Assembler DM 59,-
VisiCalc, 50 Programme auf Diskette, DM 79,-
In Vorbereitung:
Macintosh Programmier-Handbuch DM 59,-
EEE SEE TR a en ` `` s Í
Interfaces für Computer mit Applebus + Interfaces für Computer mit Applebus + Interfa
AP 13 und AP 17 AP 33
RAM-Karten zum Einsatz als Pseu- RAMDISK der neuen Generation.
dodisk unter CP/M, USCD und Für besonders speicherintensive
APPLE-DOS. Speichergröße von Arbeiten ist der Ausbau in Stufen
64 kByte bis 256 kByte. von 64 kByte bis 1MByte möglich.
Bestell-Nr.: A 1013 a-b Bestell-Nr. A 1033
A 1017 a-d
AP 19
12-Kanal AD-DA-Wandler mit 12 bit
Auflösung und 25 u sec Wandlungs-
zeit. Eingangsspannung +10 V. Ein
schneller Wandler für extrem
AP 14
Floppy-Controller für alle Anwen-
dungsfälle. 10 Laufwerke können
gleichzeitig angeschlossen werden.
4 x 8” DSDD, 4 x .517" DSDD und
zwei Apple-Standardlaufwerke. schnalle AGA
Maximal ca. 10MByte im Direktzu- Bestell-Nr.: A 1019
griff.
Bestell-Nr.: A 1014
EBA SIIRA een
NEU! 8 MHz Takt
AP 22
INTEMEX mit Z 80 B-CPU und 64
k-RAM. Wenn Sie einmal diese Karte
in Aktion gesehen haben, werden Sie
auch feststellen: „Geschwindigkeit
ist keine Hexerei, man braucht nur
die AP 22”. Mit dieser Karte wird Ihr
APPLE II zum z.Z. schnellsten CP/M-
Computer, und in Verbindung mit
ø jetzt 512 k-RAM
AP 20
INTEMEX mit 68 000 CPU und 128
k-RAM. Diese Karte macht aus Ihrem
Rechner mit „Applebus” einen ech-
ten 16 bit-Rechner. Eine Zusatzkarte
(AP 26) ermöglicht einen Arbeitsspei-
cher bis zu einem MByte und an Soft-
ware gibt es einiges. Z.B. stehen drei dem SPACE 84 erhalten Sie Compu-
Betriebssysteme und die wichtigsten terleistung, die wirklich einmalig ist.
Hochsprachen zur Verfugung. Wir vermitteln gerne eine Vorfuhrung.
Bestell-Nr. A 1020 Bestell-Nr. A 1022
Das Interface-Buch von IBS, ein Buch für Alle, die Ihren APPLE II oder Kompatiblen
optimal nutzen wollen. Detaillierte Schaltpläne, Bauteilelisten und Benutzungshinweise
W zu allen IBS-Interfaces finden Sie jetzt in einem Buch vereint. Ausführliche Abhandlun-
<Š KK? gen über Spezialschaltungen, über Anwendungsmöglichkeiten, über neue Software-
<Š welten aber auch uber die Grenzen des APPLE II-Systems bestimmen den Wert dieses
Buches.
Für nur DM 8,00 erhalten Sie dieses Buch ab sofort bei Ihrem Computerfachhändler
oder für DM 8,00 + DM 2,00 Versandkosten bei IBS COMPUTERVERTRIEB.
135
COMPUTETTECcHNIT
Olper Straße 10 - 4800 Bielefeld 14 - Tel.: 0521/444032 - W. Germany
1011 Rose Marie Lane 16 - Stockton CA 95207 - Tel. 209/473 — 7473 USA